linux端口映射

1.第一种方法, 使用firewalld

# 开启伪装IP
firewall-cmd --permanent --add-masquerade

# 配置端口转发,将到达本机的12345端口的访问转发到另一台服务器的22端口。
firewall-cmd --permanent --add-forward-port=port=12345:proto=tcp:toaddr=192.168.172.131:toport=22

# 重新载入,使其失效。
firewall-cmd --reload

2.第二种方法, 配置iptables(已验证过可以使用)

其实firewalld也是基于iptables的

#(1)开启数据转发功能

# vi /etc/sysctl.conf   
# 增加一行 net.ipv4.ip_forward=1
# 使数据转发功能生效
sysctl -p

#(2)将本地的端口转发到本机端口

iptables -t nat -A PREROUTING -p tcp --dport 2222 -j REDIRECT --to-port 22

#(3)将本机的端口转发到其他机器

iptables -t nat -A PREROUTING -d 192.168.172.130 -p tcp --dport 8000 -j DNAT --to-destination 192.168.172.131:80
iptables -t nat -A POSTROUTING -d 192.168.172.131 -p tcp --dport 80 -j SNAT --to 192.168.172.130

#清空nat表的所有链,即删除所有映射
iptables -t nat -F PREROUTING
#如果想要验证,端口是否映射成功,手动连接验证,如postman或浏览器连接服务器端口

telnet通信失败


 通信成功条件:telnet服务端连接端口开放且该端口正在被服务使用

解决方法:先检查telnet客户端和服务端是否安装;yum install telnet telnet-server -y
关闭防火墙 service firewalld stop
服务端使用该端口lsof -i:1257
posted on 2023-02-06 10:43  阿吉啊  阅读(508)  评论(0编辑  收藏  举报