更新时间:2024-04-18 GMT+08:00

端口映射配置

问题描述

外网访问“弹性云服务器1”的弹性公网IP和某个端口,可以自动跳转到“弹性云服务器2”的弹性公网IP和某个端口。

Windows操作系统

假定需要通过“弹性云服务器1”(192.168.10.43)的8080端口连接“弹性云服务器2”(192.168.10.222)的18080端口,则需要在弹性云服务器1执行如下操作。

请确保云服务器的安全组、防火墙已放通对应的端口。

  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

  2. 执行如下命令可查看服务器配置的全部端口映射。

    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地址是否正确,否则不允许弹性云服务器发送该报文。这有助于防止伪装报文攻击,提升安全性。但在该场景中,这种保护机制会导致报文的发送者无法接收到返回的报文。因此,需设置“源/目的检查”状态为禁用。

  1. 登录Linux弹性云服务器1。

    1. 执行如下命令,修改文件。

      vi /etc/sysctl.conf

    2. 在文件中添加“net.ipv4.ip_forward = 1”。
    3. 执行如下命令,完成修改。

      sysctl -p /etc/sysctl.conf

  2. 在“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

  3. 验证配置是否生效,执行如下命令,登录弹性云服务器1的1080端口。

    ssh -p 1080 123.xxx.xxx.456

    图2 Linux操作系统云服务器端口映射

    输入密码后登录到弹性云服务器2,弹性云服务器2的主机名为ecs-inner。

    图3 登录到弹性云服务器2