在没有 Internet 的 VPN 连接服务器上连接到 Internet

Ora*_*Tux 4 debian apt vpn

我有一个未连接到互联网的远程服务器,但我可以通过 VPN 隧道通过 SSH 连接到它。在这个客户端上,我上网了。是否可以通过 VPN 连接从客户端“获取互联网”?服务器是 Debian 7 机器。

Emm*_*uel 7

如果您的服务器运行的是最新的sshd版本 ( >= 4.3 ),您应该能够使用 ssh IP 隧道选项“-w”并设置 点对点连接。之后就是路由问题了。
(由于您的服务器只能通过网络访问,请注意在设置路由时不要切断链接。例如,从连接到同一局域网的另一台服务器打开一个新的 ssh 连接到您的服务器。本地路由不受影响,因此您不会冒险即使您删除了默认网关,也要切断连接。)

在这里查看文档

提炼 :

    +---------------+            OpenSSH 4.3           +---------------+
    |   Machine A   | tun0 -- Tunnel Interface -- tun0 |   Machine B   |
    |  Has a tunnel | <------------------------------->|  Has a tunnel |  
    |  and ethernet | 10.0.0.100            10.0.0.200 |  and ethernet |
    +-------+-------+     point to point connection    +-------+-------+
       eth0 |                 creates a bridge                 | eth0  
 10.0.0.100 |               that plugs machine B               | 192.168.0.100
   port 22  |                  into network A                  |          
  forwarded |                                                  |
    here    |                                                  |
    +-------+-------+          +-~-~-~-~-~-~-~-+       +-------+-------+ 
    |   Network A   |          |               |       |   Network B   |
    |  10.0.0.1/24  | 1.2.3.4  |  The Internet |       | 192.168.0.1/24|
    |  Has internet |<-------->|               |<----->|  Has internet |
    |  NAT gateway  | Routable |               |       |  NAT gateway  |
    +---------------+ Address  +-~-~-~-~-~-~-~-+       +---------------+
Run Code Online (Sandbox Code Playgroud)

编辑

另一种方法是使用代理进行端口转发

这将打开一个本地 SOCKS 代理:

ssh -TND 127.0.0.1:1080  localuser@localhost
Run Code Online (Sandbox Code Playgroud)

这会在远程主机上打开一个 shell 和一个到你的代理的隧道(不幸的是 -D 不能远程设置)

ssh -R 127.0.0.1:1080:127.0.0.1:1080 remoteuser@remotehost
Run Code Online (Sandbox Code Playgroud)

这将适用于 Firefox 和 gnome;如果您的应用程序不知道袜子,请用 tsocks 包装它

$ sudo -s 
# cat >/etc/tsocks.conf <<eof
server = 127.0.0.1
server_type = 5
server_port = 1080
eof

# tsocks apt-get update 
Run Code Online (Sandbox Code Playgroud)