如何在Windows WSL 2上使用ssuttle

js4nwp54  于 12个月前  发布在  Windows
关注(0)|答案(3)|浏览(192)

我们有一个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等)?
谢谢.

toe95027

toe950271#

我不确定,但我的猜测是,sshuttle实际上并不充当SOCKS代理,这就是为什么连接被重置的原因。
我设法在Windows机器上使用ssh SOCKS代理:ssh -D 0.0.0.0:1080 rad@bastion访问我的Jenkins,并将Firefox配置为使用SOCKS代理。
有趣的是,你甚至不需要WSL。Windows 10似乎有OpenSSH,你可以使用它。只需打开CMD并键入ssh -D 1080 rad@bastion,然后设置Firefox使用localhost作为代理。
如果有任何更好的解决方案或任何意见/关注(除了DNS over SOCKS)与此方法,请分享。
谢谢.

pgccezyw

pgccezyw2#

在WSL(2)上,你可以运行一个常规的SSH隧道。
例如:

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

字符串
然后连接到127.0.0.1:5432

kb5ga3dv

kb5ga3dv3#

我正在使用类似的设置(尽管pfsense vm代替了jenkins),到目前为止,我的解决方案是在WSL 2中安装一个浏览器(在我的情况下是firefox),从那里我可以在运行ssuttle后访问webUI。

相关问题