我的家庭 ISP 使用基于 NAT 的网络,在我的室内路由器中修改了路由器固件。然后我就无法访问所有路由器功能。再加上他们阻止了所有数据输出到 22 端口的事实,所以我无法轻松使用 ssh-client。经过 2 周的客户服务请求,我只收到一次技术访问,而“专业人士”不知道该怎么做。
我知道我可以使用类似工具torsocks
通过 tor 中继连接 ssh,虽然可以,但速度太慢了。而且我通常使用带有 ++ 的环境ssh
在tmux
云vim
主机中编程。
我还有另一个选择,那就是使用内部 ISP 调制解调器作为桥接器。它可以解决问题,但我需要一个 5G 路由器,而我这里没有,而且在我拥有的范围内,它的价格相当昂贵。而且由于他们对路由器软件有完全的远程控制权,我不知道他们什么时候会删除这个选项。
请记住,匿名不是问题,因为我在家里,而且我只想访问我有合法访问权的服务器。
我如何使用本地代理(以及哪个)来绕过此 NAT 限制?
或者有更快的中继配置来解决这个问题?
答案1
如果你可以选择更换一个不那么苛刻的供应商,你应该考虑一下。如果你的出站SSH 连接被阻止,可能是通过端口号而不是数据包分析(如果它是数据包分析,逃跑!),所以你需要一个不同端口上的 SSH 服务器来跳转。
一旦拥有一个可以连接到除 22 之外的端口的受信任的外部 SSH 服务器,就可以使用它连接到任何其他 SSH 服务器,方法是使用代理跳转或者它的前辈(更强大),代理命令。
从命令行使用 ProxyJump:
ssh -J [email protected]:222 [email protected]
ProxyJump 使用 ~/.ssh/config 中的条目
Host final-target
HostName final-target.example.com
ProxyJump [email protected]:222
User ton
ProxyJump 适用于每一个您要连接的主机:
Host jump-box
HostName external-jump-box.example.net
Port 222
User user1
Host * !external-jump-box.example.net
ProxyJump [email protected]:222
如果用户名与您在本地系统上使用的用户名相同,则无需指定用户名。如果删除它,请删除User
配置中的行和/或用户名以及@
它出现的 at-sign ( )。我为您的跳转框使用了单独的用户名,只是为了说明如何做到这一点。
(这可能会造成无限循环。如果是这样,您将不得不使用 ProxyCommand。请告诉我,我也会在这里记录下来。)
视窗可以使用油灰使用其 plink.exe 实用程序,如关于此问题中所述PuTTY 中的 OpenSSH ProxyCommand 等效项。
答案2
我有这样的设置。我使用我的桥接 ISP 调制解调器和带有修改过的固件的路由器将传入端口 22 和其他连接转发到我的网络服务器。桥接模式的调制解调器是必须的,否则您必须从调制解调器本身进行端口转发,而不是从修改过的路由器进行端口转发。
如果只是端口 22 被阻止,您可以尝试使用其他端口。通过查看每个数据包来过滤流量的防火墙更昂贵,而且公司不太可能有防火墙。您可以使用 torsocks 进行连接,这表明它们可能只是在过滤端口 22。
呼!