我有一台 CentOS VM,具有 127 个公共外部 IP 地址。我尝试使用 ssh -D 一次代理所有连接,如下所示:
ssh -f -N -D 0.0.0.0:1000 1.1.1.1
ssh -f -N -D 0.0.0.0:1001 1.1.1.2
其中 0.0.0.0 是字面意思,1.1.1.1 / 1.1.1.2 对应于 127 个公共地址之一。起初,我被拒绝许可。因此,我运行此命令来添加 IP:
ip address add 1.1.1.2/25 dev eth0
操作成功完成。但是,通过端口 1000 和 1001 进行 socks 代理时,公共外部 IP 保持不变:1.1.1.1。如果我通过 1.1.1.1 或 1.1.1.2 连接到远程服务器,情况确实如此
我如何让 SSH 使用所有 127 个公共 IP 地址?我不一定需要在每个 IP 配置中都使用一个端口,只需要能够同时代理所有 IP。我搜索了很多,但找不到这个问题的答案,无论是在论坛帖子中还是在 CentOS 文档中。任何帮助都值得感激。
答案1
-D 端口 指定本地“动态”应用程序级端口转发。其工作原理是分配一个套接字来监听本地端口,每当连接到此端口时,该连接都会通过安全通道转发,然后使用应用程序协议来确定从远程计算机连接到何处。
用于 SSH 连接的 IP 地址不会影响用于连接的 IP从远程服务器。这取决于路由表(远程服务器)。