给定一台windows机器A和一台linux机器B,我尝试实现这解决方案(另请阅读这网站)通过A访问B上的互联网(A机器可以访问互联网)。
在windows机器A上,我打开一个powershell并写入
netsh winhttp set proxy 127.0.0.1:8000
在linux机器B上,我在/etc/environment文件中设置
export http_proxy=http://127.0.0.1:7000
export https_proxy=http://127.0.0.1:7000
然后我使用以下命令获取变量
source /etc/environment
然后,按照引用的链接,我做了一个远程端口转发(据我所知,这意味着Linux机器B的端口7000上发生的所有事情都将被转发到Windows机器A的端口8000),所以我在a中写了这个Windows机器A上的终端:
ssh -R 7000:localhost:8000 user@hostB
现在我想我已经完成了。然而,当我在 Linux 机器 B 上尝试这个命令时
wget http://google.com
我明白了
--2022-04-03 10:08:28-- http://google.com/
Resolving localhost (localhost)... 127.0.0.1, ::1
Connecting to localhost (localhost)|127.0.0.1|:7000... connected.
Proxy request sent, awaiting response... No data received.
Retrying.
--2022-04-03 10:08:31-- (try: 2) http://google.com/
Connecting to localhost (localhost)|127.0.0.1|:7000... connected.
Proxy request sent, awaiting response... No data received.
Retrying.
--2022-04-03 10:08:35-- (try: 3) http://google.com/
Connecting to localhost (localhost)|127.0.0.1|:7000... connected.
Proxy request sent, awaiting response... No data received.
Retrying.
...
我是个初学者,所以如果有人能解释我如何让它发挥作用,我将不胜感激。
答案1
如果您的Linux系统上的应用程序可以使用SOCKS,则可以使用SOCKS Proxyssh
来方便网络连接
视窗:
ssh -D 1080 linuxServer # add -fN to run in the background
现在,您有一个 SOCKS 服务器正在侦听 linuxServer 上的端口 1080,并通过 ssh 会话路由回 Windows 客户端。
Linux:
您需要安装 SOCKS 代理,例如,tsocks
或者使用 SOCKS 感知应用程序,例如wget
.运行它们root
(用于sudo -s
获取 root shell):
apt install tsocks # Install the tool
cp -p /etc/tsocks.conf /etc/tsocks.conf.ORIGINAL # I like to save configuration files before changing them
echo server = 127.0.0.1 >/etc/tsocks.conf # Minimal configuration
现在,您可以为网络命令或应用程序添加前缀,以tsocks
使用您在第一步中创建的 SOCKS 代理:
tsocks wget https://bbc.co.uk/
并非所有命令都适用于tsocks
.特别是ping
无法工作,您将收到错误,ERROR: ld.so: object 'libtsocks.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
。