簡體   English   中英

如何在 Windows WSL2 上使用 sshuttle

[英]How to Use sshuttle on Windows WSL2

我們有一個 Jenkins 服務器,只能從雲上的 VPC 內部訪問。 在 Mac 和 Linux 上,我使用sshuttle與堡壘實例建立 ssh 連接(充當代理)並在瀏覽器中打開 Jenkins 控制台。 一切正常。
現在我在 Windows 上,並試圖在 WSL2 上做同樣的事情。 如果我之前沒記錯的話, sshuttle在 WSL1 上不起作用(失敗並出現一些錯誤消息),但我設法在 WSL2 上運行它而沒有任何問題。 ssh 連接已建立,我可以訪問我的 Jenkins(使用curl )。
然后我嘗試通過 WSL2 在 Windows 上訪問我的 Jenkins:
1.我找到了WSL2的IP地址和端口ssh隧道:

# lsof -i -n | grep ssh
sshuttle 1234  rad    5u  IPv4  39270      0t0  TCP *:socks (LISTEN)
ssh      5678  rad    3u  IPv4  40252      0t0  TCP 172.25.236.84:57578->bastion:ssh (ESTABLISHED)

2. 我配置了 Firefox (v77) 的網絡代理設置來使用我的 ssh 隧道:

 Manual proxy configuration
 SOCK host: 172.25.236.84
 Port: 1080
 SOCKS V5 (tested with V4 as well)

但加載頁面失敗,Firefox 上出現“連接已重置”錯誤。 我通過 Powershell 測試了 SOCKS 端口已打開並響應(使用Test-NetConnection )。
1.知道問題是什么嗎? 如何讓它發揮作用?
2. 如果不行,是否有其他解決方案(例如 Docker 等)?
謝謝。

我不確定,但我的猜測是sshuttle實際上並沒有充當 SOCKS 代理,這就是連接被重置的原因。
I managed to access my Jenkins on Windows machine using ssh SOCKS proxy: ssh -D 0.0.0.0:1080 rad@bastion and configured Firefox to use the SOCKS proxy.
有趣的是,為此您甚至不需要 WSL。 Windows 10 似乎有 OpenSSH,你可以使用它。 只需打開 CMD 並輸入ssh -D 1080 rad@bastion並設置 Firefox 以使用 localhost 作為代理。
如果有任何更好的解決方案或任何評論/關注(除了 DNS over SOCKS),請分享。
謝謝。

作為 WSL(2) 的替代方案,您可以運行常規 SSH 隧道。

例如:

ssh -N -L 127.0.0.1:5432:some_domain_to_forward:5432 user@jumpbox_ip

然后只需連接到 127.0.0.1:5432

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM