端口映射配置
问题描述
外网访问“弹性云服务器1”的弹性公网IP和某个端口,可以自动跳转到“弹性云服务器2”的弹性公网IP和某个端口。
Windows操作系统
假定需要通过“弹性云服务器1”(192.168.10.43)的8080端口连接“弹性云服务器2”(192.168.10.222)的18080端口,则需要在弹性云服务器1执行如下操作。
说明:
请确保云服务器的安全组、防火墙已放通对应的端口。
- 打开cmd窗口执行命令。本例以Windows 2012操作系统云服务器为例。
netsh interface portproxy add v4tov4 listenaddress=192.168.10.43 listenport=8080 connectaddress=192.168.10.222 connectport=18080
如果想取消上面配置的端口转发,可执行如下命令。
netsh interface portproxy delete v4tov4 listenaddress=192.168.10.43 listenport=8080
- 执行如下命令可查看服务器配置的全部端口映射。
netsh interface portproxy show v4tov4
图1 Windows操作系统云服务器端口映射
Linux操作系统
以登录为例,登录“弹性云服务器1”的1080端口自动跳转访问“弹性云服务器2”的22端口。
弹性云服务器1的私网IP:192.168.72.10;弹性公网IP:123.xxx.xxx.456。
弹性云服务器2的私网IP:192.168.72.20。
说明:
- 请确保云服务器的安全组、防火墙已放通对应的端口。
- 请确保已关闭“源/目的检查”。
在云服务器详情页面,选择“网卡”页签,并展开,将“源/目的检查”选项设置为“OFF”。
默认情况下,“源/目的检查”状态为“启用”,系统会检查弹性云服务器发送的报文中源IP地址是否正确,否则不允许弹性云服务器发送该报文。这有助于防止伪装报文攻击,提升安全性。但在该场景中,这种保护机制会导致报文的发送者无法接收到返回的报文。因此,需设置“源/目的检查”状态为禁用。
- 登录Linux弹性云服务器1。
- 执行如下命令,修改文件。
vi /etc/sysctl.conf
- 在文件中添加“net.ipv4.ip_forward = 1”。
- 执行如下命令,完成修改。
sysctl -p /etc/sysctl.conf
- 执行如下命令,修改文件。
- 在“iptables”的“nat”表中添加规则,执行如下命令,通过弹性云服务器1的1080端口映射到弹性云服务器2的22端口。
iptables -t nat -A PREROUTING -d 192.168.72.10 -p tcp --dport 1080 -j DNAT --to-destination 192.168.72.20:22
iptables -t nat -A POSTROUTING -d 192.168.72.20 -p tcp --dport 22 -j SNAT --to 192.168.72.10
- 验证配置是否生效,执行如下命令,登录弹性云服务器1的1080端口。
ssh -p 1080 123.xxx.xxx.456
图2 Linux操作系统云服务器端口映射输入密码后登录到弹性云服务器2,弹性云服务器2的主机名为ecs-inner。
图3 登录到弹性云服务器2