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

相关推荐
YuSun_WK1 小时前
程序&进程&多任务&线程
linux·运维·服务器
HeLLo_a1192 小时前
第11章 安全网络架构和组件(一)
linux·服务器·网络
南川琼语2 小时前
TCP概念+模拟tcp服务器及客户端
linux·服务器·网络·tcp/ip
潘yi.6 小时前
web技术与nginx网站环境部署
服务器·网络·nginx
安顾里7 小时前
Linux命令-iostat
linux·运维·服务器
whoarethenext7 小时前
初始https附带c/c++源码使用curl库调用
服务器·c++·qt·https·curl
100编程朱老师7 小时前
面试:什么叫Linux多路复用 ?
linux·运维·服务器
群联云防护小杜7 小时前
云服务器主动防御策略与自动化防护(下)
运维·服务器·分布式·安全·自动化·音视频
PPIO派欧云7 小时前
PPIO X OWL:一键开启任务自动化的高效革命
运维·人工智能·自动化·github·api·教程·ppio派欧云
Jtti7 小时前
Jtti:nginx服务器如何限制访问频率
服务器·网络·nginx