linux – 将传出的SOCKS服务器流量绑定到特定IP
在办公室,我们可以通过SOCKS服务器访问Web,该服务器使用以下命令启动:
ssh localhost -f -N -D *:8888. 此服务器有2个IP(但只有一个网卡): 因此浏览器配置为使用socks代理xx.yy.zz.2:8888 当我检查网站看到的IP是什么时,它会给我xx.yy.zz.1(服务器的默认IP). 如何将传出连接绑定到第二个IP? 编辑: EDIT2: 解决方法
在进行动态端口转发时,SSH协议无法让客户端告诉服务器绑定到某个地址,所以不,不能告诉SSH客户端这样做.你不能告诉OpenSSH服务器也这样做.它将盲目地使用getaddrinfo连接到您的远程主机.
唯一的解决方法是配置您的服务器,使其达到您想要的效果.不幸的是,你无法从路由或iptables告诉OpenSSH服务器建立了什么连接.问题很难:OpenSSH可能会打开连接,但也可能产生一个shell,它可以产生其他进程也可以打开连接.区别于这两个案例很难.如果OpenSSH只是设置一个标记或任何东西会更容易,但事实并非如此. 所以你的解决方案有限: >使用单独的SOCKS服务器,允许您配置绑定地址. 要在没有源地址时分配源地址,内核会查看目标地址的已使用路由条目,如果它具有首选源地址,它将使用它.否则,它会选择一些最适合该任务的地址.无论选择什么,都可以在src令牌之后通过ip route get(destination)命令进行检查: $ip route get 8.8.8.8 您可以使用ip route命令修改路由表,以使用ip route change […] src xx.yy.zz.2添加首选源地址.您甚至可以通过相同的网关添加更具体的路由,但使用不同的路由首选源地址. 与所有这些无关:在Linux上不推荐使用“接口别名”(例如eth0:1).它们仍然可以作为ifconfig等历史工具的向后兼容性,但你应该真正摆脱它们并使用内核的本机功能来获得每个接口的多个地址.停止使用ifconfig,路由并使用ip addr和ip route代替. 使用ip addr add … dev eth0为eth0接口添加地址.您可以根据需要添加任意数量的地址.使用ip addr列出所有内容.有关详细信息,请参阅ip addr和ip route的手册页. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |