Linux端口转发的几种常用技巧

1. SSH 端口转发

SSH 提供了一个非常有意思的功能,就是端口转发,它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。

(1) 本地端口转发


  1. ssh -fgN -L 2222:localhost:22 localhost 

(2) 远程端口转发


  1. ssh -fgN -R 2222:host1:22 localhost 

(3) 动态转发


  1. ssh -fgN -D 12345 root@host1 

2. iptables 端口转发

CentOS 7.0 以下使用的是iptables,可以通过iptables实现数据包的转发。

(1) 开启数据转发功能


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

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


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

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


  1. iptables -t nat -A PREROUTING -d 192.168.172.130 -p tcp –dport 8000 -j DNAT –to-destination 192.168.172.131:80 
  2. iptables -t nat -A POSTROUTING -d 192.168.172.131 -p tcp –dport 80 -j SNAT –to 192.168.172.130 
  3.  
  4. #清空nat表的所有链 
  5. iptables -t nat -F PREROUTING 

3. firewall 端口转发

CentOS 7.0以上使用的是firewall,通过命令行配置实现端口转发。

(1) 开启伪装IP


  1. firewall-cmd –permanent –add-masquerade 

(2) 配置端口转发,将到达本机的12345端口的访问转发到另一台服务器的22端口。


  1. firewall-cmd –permanent –add-forward-port=port=12345:proto=tcp:toaddr=192.168.172.131:toport=22 

(3) 重新载入,使其失效。


  1. firewall-cmd –reload 

4. rinetd 端口转发

rinetd是一个轻量级TCP转发工具,简单配置就可以实现端口映射/转发/重定向。

(1) 源码下载


  1. wget https://li.nux.ro/download/nux/misc/el7/x86_64/rinetd-0.62-9.el7.nux.x86_64.rpm 

(2) 安装rinetd


  1. rpm -ivh rinetd-0.62-9.el7.nux.x86_64.rpm 

(3) 编辑配置文件


  1. vi rinetd.conf  
  2.     0.0.0.0 1234 127.0.0.1 22 

(4) 启动转发


  1. rinetd -c /etc/rinetd.conf 
【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章