在主机之间转发流量

在主机之间转发流量

请建议将所有连接从主机:端口(外部接口)转发到主机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 常见问题解答更多

相关内容