我们有一个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等)?
谢谢.
3条答案
按热度按时间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)与此方法,请分享。
谢谢.
pgccezyw2#
在WSL(2)上,你可以运行一个常规的SSH隧道。
例如:
字符串
然后连接到127.0.0.1:5432
kb5ga3dv3#
我正在使用类似的设置(尽管pfsense vm代替了jenkins),到目前为止,我的解决方案是在WSL 2中安装一个浏览器(在我的情况下是firefox),从那里我可以在运行ssuttle后访问webUI。