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

相关推荐
NiKo_W32 分钟前
Linux 开发工具(1)
linux·运维·服务器
艾莉丝努力练剑1 小时前
【C++】类和对象(下):初始化列表、类型转换、Static、友元、内部类、匿名对象/有名对象、优化
linux·运维·c++·经验分享
风_峰1 小时前
PuTTY软件访问ZYNQ板卡的Linux系统
linux·服务器·嵌入式硬件·fpga开发
会开花的二叉树1 小时前
UDP Socket 进阶:从 Echo 到字典服务器,学会 “解耦” 网络与业务
服务器·网络·udp
-SGlow-1 小时前
Linux相关概念和易错知识点(45)(网络层、网段划分)
linux·运维·服务器·网络
csdn_aspnet2 小时前
Windows、Linux 系统 nodejs 和 npm 版本更新及错误修复
linux·windows·npm·node.js
潘潘潘潘潘潘潘潘潘潘潘潘2 小时前
【MySQL】从零开始学习MySQL:基础与安装指南
linux·运维·服务器·数据库·学习·mysql
ZzzZZzzzZZZzzzz…2 小时前
Nginx_Tomcat综合案例
运维·nginx·tomcat·负载均衡·rhce·反向代理·https加密服务
努力努力再努力wz3 小时前
【c++进阶系列】:map和set的模拟实现(附模拟实现的源码)
java·linux·运维·开发语言·c++
哦你看看4 小时前
linux故障排查
linux·运维·服务器