我有两台电脑(A&B,两者都运行 ubuntu 16.04) 并通过本地网络连接。PC-A 已连接互联网。我想使用 ssh 隧道在 PC-B 上浏览互联网。
我使用了 PC-B 中的命令 -
ssh -D 9999 user@IP_ADDRESS
然后我设置HTTP、HTTPS、FTP 代理空的和SOCKS代理“localhost”和端口 9999。
如果 PC-A 有 Internet 连接,不是需要代理设置,然后我可以使用上述命令在 PC-B 上浏览网络。
但如果 PC-A 有 Internet 连接,则需要HTTP 代理“xxx.yy.zz.zz” 和端口 8080 然后我无法使用上述命令浏览互联网并且终端显示以下错误:
"channel 3: open failed: connect failed: Connection refused".
我该怎么办?任何帮助我都感激不尽。
答案1
您是否考虑过在 PC-A 上运行代理服务器(可能是 squid)?然后,您可以在给定端口上从 PC-B 创建一个隧道,连接到 squid 守护进程在 PC-A 上的输入端口。
然后你可以配置 squid 来使用另一个上游代理(http://www.christianschenk.org/blog/using-a-parent-proxy-with-squid/)或根据需要直接连接到互联网。
答案2
我自己的问题的答案是:
如果 PC-A 具有通过代理 (proxy_ip:port) 连接的互联网,并且您想使用 ssh 通过本地网络连接在 PC-B 中访问 PC-A 的互联网连接,则在终端中执行此命令:
ssh -L random_port:proxy_ip:port username_A@ip_Address_A
让我们举个例子:
PC-A:
- 用户名:linus
- IP地址:192.168.55.55
- 在代理上运行:192.168.11.11
- 运行端口:8080
选择一个随机端口,7856(随机)
然后在 PC-B
ssh -L 7856:192.168.11.11:8080 [email protected]
然后更改网络设置:
- HTTP/HTTPS 代理:localhost 或 172.0.0.1
- PORT:随机端口(本例中为 7856)
现在您已连接互联网。