我想使用 SSH 服务器为 sshuttle 提供互联网连接

我想使用 SSH 服务器为 sshuttle 提供互联网连接

我有一个本地网络,其中包含一台名为blackUbuntu 16 服务器的计算机和一台树莓派。树莓派有两张网卡。一张面向这个本地网络,另一张通过路由器连接到我的 ISP。 black有一个面向这个网络的接口。树莓派运行一个开箱即用的 ssh 服务器。

我想使用 sshuttle(或类似的其他程序)来提供black互联网连接。

这是在调用 sshuttle 之前运行的:

username@black:~$ cat /etc/network/interfaces

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto enp2s0
iface enp2s0 inet static
    address 192.168.0.11
    netmask 255.255.255.0

username@black:~$ ip route

192.168.0.0/24 dev enp2s0  proto kernel  scope link  src 192.168.0.11 

username@black:~$ ping 8.8.8.8
connect: Network is unreachable

然后我像这样运行 sshuttle:

username@black:~$ sshuttle -r [email protected] 0.0.0.0/0
[email protected]'s password:
-c:3: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
client: Connected.

然后在另一个终端中运行以下命令:

username@black:~$ ip route

192.168.0.0/24 dev enp2s0  proto kernel  scope link  src 192.168.0.11 

username@black:~$ ping 8.8.8.8
connect: Network is unreachable

我该如何实现此功能,以便一旦连接到 sshuttle,就可以向本地网络之外的 IP 发送 ping?出于各种原因,它必须是 ssh 隧道,但除了 sshuttle 之外还有其他东西吗?

答案1

来自 sshuttle 文档:

您向其中一个代理 IP 地址发起的任何 TCP 会话都将被 sshuttle 捕获,并通过 ssh 会话发送到 sshuttle 的远程副本,然后 sshuttle 将在该端重新生成连接,并通过 ssh 来回传输数据。

它看起来本质上与本机 SOCKS5 服务器执行相同的操作,ssh -D只是它对本地机器来说是透明的,因此客户端不需要支持使用代理服务器。

但是,我看不到它支持代理 UDP 或 ICMP。

相关内容