如何使用 ssh 隧道訪問啟用代理的 Internet?
我有兩台通過本地網路連接的電腦(**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 具有需要HTTP 代理“xxx.yy.zz.zz”和埠 8080 的 Internet 連接,則我無法使用上述命令瀏覽 Internet,終端顯示以下錯誤:
"channel 3: open failed: connect failed: Connection refused".
我該怎麼辦 ?任何幫助表示讚賞。
我自己的問題的答案是:
如果 PC-A 與代理 (proxy_ip:port) 有 Internet 連接,並且您想使用 ssh 通過本地網路連接訪問 PC-B 中的 PC-A Internet 連接,則在終端中執行此命令:
ssh -L random_port:proxy_ip:port username_A@ip_Address_A
讓我們舉個例子:
個人電腦-A:
- 使用者名:linus
- IP地址:192.168.55.55
- 在代理上執行:192.168.11.11
- 在埠上執行:8080
選擇了一個隨機埠,7856(隨機)
然後在 PC-B
ssh -L 7856:192.168.11.11:8080 linus@192.168.55.55
然後更改網路設置:
- HTTP/HTTPS 代理:本地主機或 172.0.0.1
- 埠:隨機埠(在本例中為 7856)
現在你有網際網路連接。
您是否考慮過在 PC-A 上執行代理伺服器(可能是 squid)?然後,您可以創建一條從給定埠上的 PC-B 到 squid 守護程序的 PC-A 上的輸入埠的隧道。
然後您可以將 squid 配置為使用另一個上游代理 ( http://www.christianschenk.org/blog/using-a-parent-proxy-with-squid/ ) 或根據您的需要直接連接到 Internet。