Windows Server 2012 搭建网关服务器并端口转发

需求

使用 Windows server 作为Hyper-V 虚拟出许多虚拟机,基本上都分配了内网地址,现在需要这些虚拟机访问外网,或者外网直接访问这些虚拟机,必须配置一个网关服务器。我决定直接使用 Windows 的远程访问中的 NAT 服务来完成。

没有找到官方文档,本文完全参考了以下文章
在Windows Server系统上配置路由转发功能

环境

Windows server 2012 r2

外网网卡 : 221.122.XXX.XXX

内网网卡 : 192.168.0.1 (作为内网网关地址)

由于服务器已经开启 hyper-V ,使用,实际使用的分别是 2 块虚拟网卡

配置服务器管理器

  1. 服务器管理器 -- 添加角色和功能

    一路回车,"选择服务器角色" 找到 "远程访问",继续一路回车,直到完成

    在选择角色服务这里,勾选"路由",第一项 "DirectAccess..."也跟着一起选中了

  1. 服务器管理器 -- 工具 --- 路由和远程访问

    如果看到服务器状态下那个本地服务器已经启动,就不能 "配置并启用路由和远程访问",可以先"禁用路由和远程访问"

    复制代码
     选择 : 配置并启用路由和远程访问

    开始我一直折腾 "配置 LAN 路由" ,那个没有出现在功能列表中。使用,只能选 "其他",然后,就可以看到了

    我这里最终决定,只选 NAT

  2. 重点来了:新增接口
    开始时,将接口理解为网卡,总是在 2 个网卡中来回折腾不成功!
    后来,通过以上参考文章,突然明白,内网接口应该选 "本地",而不是配置了 192.168.0.1 的那块网卡!

    1). 公用接口: 配置好外网地址的网卡,负责链接访问 internet

    2). 专用接口: 不只是那个配置了 192.168.0.1 的网卡,应该是所有本机网卡的集合,接口负责指向 localhost 或 127.0.0.1 ,所以叫做"本地连接"

    最终结果如下图

  3. 分别配置以上 2 个接口

    外网

    勾选 "公用接口连接到Internet"

    内网

    勾选 "专用接口连接到专用网络"

    到这里,已经实现了内网到外网的访问
    通过外网接口实现端口转发后续再记录

测试

找一个只有内网地址的虚拟机

复制代码
$ ip a
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:32:bd:04 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.193/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fe32:bd04/64 scope link 
       valid_lft forever preferred_lft forever
  1. ping 外网网关

    复制代码
     $ ping 192.168.0.1
     PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
     64 bytes from 192.168.0.1: icmp_seq=1 ttl=128 time=0.228 ms
     64 bytes from 192.168.0.1: icmp_seq=2 ttl=128 time=0.161 ms
  2. ping 外网网关

    复制代码
     $ ping 221.122.XXX.XX1
     PING 221.122.XXX.XX1 (221.122.XXX.XX1) 56(84) bytes of data.
     64 bytes from 221.122.XXX.XX1: icmp_seq=1 ttl=254 time=1.94 ms
     64 bytes from 221.122.XXX.XX1: icmp_seq=2 ttl=254 time=1.99 ms
     64 bytes from 221.122.XXX.XX1: icmp_seq=3 ttl=254 time=2.06 ms
  3. ping DNS 地址

    复制代码
     $ ping 223.5.5.5
     PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data.
     64 bytes from 223.5.5.5: icmp_seq=1 ttl=114 time=6.75 ms
     64 bytes from 223.5.5.5: icmp_seq=2 ttl=114 time=6.63 ms
     64 bytes from 223.5.5.5: icmp_seq=3 ttl=114 time=6.66 ms
     ......
  4. ping 域名

    复制代码
     $ ping jd.com
     PING jd.com (111.13.149.108) 56(84) bytes of data.
     64 bytes from 111.13.149.108 (111.13.149.108): icmp_seq=1 ttl=49 time=7.12 ms
     64 bytes from 111.13.149.108 (111.13.149.108): icmp_seq=2 ttl=49 time=7.04 ms
     64 bytes from 111.13.149.108 (111.13.149.108): icmp_seq=3 ttl=49 time=6.87 ms
     64 bytes from 111.13.149.108 (111.13.149.108): icmp_seq=4 ttl=49 time=6.89 ms
     ......

端口转发

还以上面 192.168.0.193 虚拟机为例

  1. 将 传入到本机的 22193 端口 --- 转发到 192.168.0.193的 22 端口,实现外网直接 ssh 到内网 192.168.0.193

  2. 测试

    假设本机外网地址是 221.122.XXX.XXX

    $ ssh 221.122.XXX.XXX -p 22193

    OK

相关推荐
guygg8830 分钟前
ubuntu手动编译VTK9.3 Generating qmltypes file 失败
linux·运维·ubuntu
行者游学1 小时前
windows grpcurl
windows
先做个垃圾出来………1 小时前
自动化一次通过率
运维·自动化
goxingman2 小时前
Spring Data JPA基本方法调用规律
windows
夕泠爱吃糖2 小时前
Linux中的静态库和动态库
linux·运维·服务器
Vic101012 小时前
Java 开发笔记:多线程查询逻辑的抽象与优化
java·服务器·笔记
比奥利奥还傲.3 小时前
Linux运维安全新范式:基于TCPIP与SSH密钥的无密码认证实战
linux·运维·安全
moppol4 小时前
探索下一代云存储技术:对象存储、文件存储与块存储的区别与选择
服务器
mmsx4 小时前
使用git生成ssh的ed25519密钥
运维·git·ssh
ZeroNews内网穿透4 小时前
服装零售企业跨区域运营难题破解方案
java·大数据·运维·服务器·数据库·tcp/ip·零售