请建议将所有连接从主机:端口(外部接口)转发到主机2:端口(外部接口)的最简单方法
当我使用
ssh -L local_port:remote_host:remote_port -N -l user remote_host
主要问题是 local_port 必须支持外部接口上的连接,以允许不仅来自该机器上的本地主机的连接
谢谢建议
答案1
我会选择以下任一条路线:
- 使用网桥,只有当你不需要访问所涉及的任何两个接口上的主机时才有可能
- 使用ipf安装相应的防火墙路由
ssh -L 0.0.0.0:localport:remote_host:remote_port -N -l user remote_host
这样 ssh 将绑定到所有接口,而不仅仅是本地接口(这只是默认接口)
答案2
您没有解释要使用端口转发做什么。因此,我冒昧地建议,除了使用-L
标志之外,还为支持它的应用程序(例如 Firefox)设置 SOCKS 代理:
ssh -D *:9999 user@remote_host
常见用法是配置 Firefox 以使用此 SOCKS 代理,并network.proxy.socks_remote_dns
打开该代理,通过其他主机传输您的 HTTP 会话。
答案3
您缺少 -g 标志。添加该标志后,远程主机也可以使用隧道。
答案4
如果您使用的是 freebsd,那么最好的方法是使用防火墙:
kldload pf
echo "rdr on INT proto tcp from any to any port PORT1 -> IP2 port PORT2" > /etc/pf.conf
pfctl -f /etc/pf.conf
pfctl -e
INT - 接口名称(即 rl0)
此命令将从 INT:PORT1 转发到 IP2:PORT2
这是最快、最可定制的端口转发方法,但仅适用于 BSD
查看PF 常见问题解答更多