使用iptables实现端口转发

SSH 也能实现本机的端口转发,只不过原来的 1 条连接会变成 3 条。而 iptables 的端口转发则是在内核进行(netstat是看不到的),效率相对更高。下面介绍其典型的几种端口转发形式。

将本地的端口转发到本机端口

设置端口转发

将本机的 7777 端口转发到 6666 端口(该设置方式在机器重启之后失效):

1
root@host01$ iptables -t nat -A PREROUTING -p tcp --dport 7777 -j REDIRECT --to-port 6666


SSH隧道详解

场景一:本地端口转发实现跳板机

场景描述

想象一个业务场景,我的电脑想访问host03的9000端口,但是网络不通,但是我有host02的ssh登录权限,并且host02能够访问host03的9000端口,那么能不能通过host02作为跳板机直接让我的电脑访问host03:9000呢?

image-20211230150950790

其实这个就是ssh本地端口转发的典型应用,可以实现跳板机的功能,如上图所示。


通过nc远程拷贝文件

方法1,传输文件演示(先启动接收命令)

使用nc传输文件还是比较方便的,因为不用scp和rsync那种输入密码的操作了

把A机器上的一个rpm文件发送到B机器上

需注意操作次序,receiver先侦听端口,sender向receiver所在机器的该端口发送数据。