Networking

如何使用 ssh 隧道訪問啟用代理的 Internet?

  • July 26, 2017

我有兩台通過本地網路連接的電腦(**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。

引用自:https://serverfault.com/questions/846984