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

相关推荐
珠海西格电力科技1 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀1 小时前
Linux环境变量
linux·运维·服务器
zzzsde1 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器
命里有定数2 小时前
保姆级教程:在 Windows (WSL2) 下本地部署 Qwen3-ASR
windows
qq_297574672 小时前
Linux 服务器 Java 开发环境搭建保姆级教程
java·linux·服务器
聆风吟º3 小时前
CANN开源项目实战指南:使用oam-tools构建自动化故障诊断与运维可观测性体系
运维·开源·自动化·cann
神梦流3 小时前
ops-math 算子库的扩展能力:高精度与复数运算的硬件映射策略
服务器·数据库
NPE~3 小时前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化
神梦流3 小时前
GE 引擎的内存优化终局:静态生命周期分析指导下的内存分配与复用策略
linux·运维·服务器
凡人叶枫3 小时前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++