![我如何使用端口转发到多 IP](https://linux22.com/image/697601/%E6%88%91%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E5%88%B0%E5%A4%9A%20IP.png)
我有两个 IP(公共 IP)eth0:1.1.1.1
和eth0:1:2.2.2.2
我正在使用端口转发。
ssh -D 1080 [email protected]
但是当我去检查 IP 站点 (ip2location) 时我的 IP 是:1.1.1.1
我想要使用:--> 在外部网站上显示为我的 IPssh -D 1081 [email protected]
1.1.1.1
并且--> 以我的 IP 在外部网站上查看 ssh -D 1080 [email protected]
2.2.2.2
请告诉我。
答案1
这比你的问题所暗示的要困难得多。
使用 SSH SOCKS 代理,服务器 sshd 进程将代表您的客户端建立连接。源 IP 的选择不会考虑您连接的端口或 IP,并且ssh
您无法提供任何参数来明确设置。
选择连接的源 IP按(顺序):
- 应用程序明确设置的任何值(ssh 客户端不允许这样做)
- 这
src
暗示在路由表中(默认未设置) - 接口上配置的第一个 IP(通常是默认
选项,也可能是为什么通过代理的所有连接都来自从1.1.1.1.
解决这个问题的一个粗略方法是,在连接时,使用一些脚本来确定用于 ssh 连接的端口或 IP,并运行相关ip route add default via <next-hop> src 1.1.1.1
命令来设置暗示,但这仅在您一次只打开一个代理连接时才有效;该命令将更改来自服务器的所有连接的默认源 IP。
更简洁的方法可能是使用 iproute2 的基于策略的路由. 配置两个单独的路由表,每个路由表都有相关的src
提示,然后可能创建一个根据用户上下文选择一个表的策略,从而使用适当的源 IP 进行路由。