为 VPN 设置 SSH 隧道?

为 VPN 设置 SSH 隧道?

我有一台运行 Ubuntu 的笔记本电脑。我还租了一个运行 Ubuntu 的 VPS。我购买了付费 VPN 服务,并在笔记本电脑上使用。

我想知道如何设置 SSH 隧道或类似的东西,从我的笔记本电脑到我租用的 VPS,这样我就可以“通过”它(到 VPS)运行 VPN(从我的笔记本电脑),到 VPN 服务器。我希望这样做的原因是,我经常工作的地方阻止了我的 VPN 服务,但没有阻止我通过 SSH 连接到我的 VPS...

虽然我已经使用 Linux 一段时间了,但在设置虚拟网络设备、高级路由等方面我还是个新手……所以用小勺喂我(使用小词语和彩色图片 ;-)

我一直在谷歌上搜索并查看 StackExchange 网络上的各种答案,但似乎不是我想要的。SSH 隧道似乎很有希望,但由于我没有/不知道我的 VPN 的确切域和端口,我无法弄清楚如何使用它...我想我可能需要在我的笔记本电脑上设置一些虚拟网络设备(以 VPS 为终端),并通过它连接 VPN - 但如何做到这一点,遗憾的是我不知道。

答案1

最简单的方法是使用类似于 VPN 的 SSH 隧道传输所有流量sshuttle包裹

首先,安装包:

sudo apt-get install sshuttle

然后连接到 SSH 隧道并重定向您的默认路由以通过它:

sshuttle  -vv --dns -r username@sshserver[:port] 0.0.0.0/0

这将转发全部通过 SSH 连接的 TCP 流量,包括 DNS 请求。如果您仍希望在本地处理 DNS,则可以删除该--dns标志。

答案2

创建隧道

ssh -fND 7001 yourVPN

打开 Chromium 以使用代理

chromium-browser --proxy-server=socks5://localhost:7001

笔记

  • 7001是端口,可以更改,只要它们都匹配
  • 您还可以传递--user-data-dir=/tmp/someDirchromium使用不同的 Chromium 实例

答案3

我可以提出一个简单的解决方案,只是不要投票反对我,因为我是一个完全的新手

为什么无法连接到从 vps 获得的 vpn 服务?在 vps 上设置 openvpn 服务器,然后从客户端计算机连接到 vps 的 openvpn 服务器。相信我,它有效,我刚刚使用我的虚拟机和公共 vpn 服务器进行了确认。

root@eminem:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:58:c1:62  
          inet addr:172.16.32.5  Bcast:172.16.32.15  Mask:255.255.255.240
          inet6 addr: fe80::a00:27ff:fe58:c162/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9484 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8638 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3820414 (3.8 MB)  TX bytes:3520084 (3.5 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:568 errors:0 dropped:0 overruns:0 frame:0
          TX packets:568 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:161882 (161.8 KB)  TX bytes:161882 (161.8 KB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:3225 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3052 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:635287 (635.2 KB)  TX bytes:2218229 (2.2 MB)

root@eminem:~# openvpn --config /home/eminem/oki.ovpn

连接到外部 vpnserver(就你的情况而言)来自你的 vps 服务器的 vpn 服务

root@eminem:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:58:c1:62  
          inet addr:172.16.32.5  Bcast:172.16.32.15  Mask:255.255.255.240
          inet6 addr: fe80::a00:27ff:fe58:c162/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9763 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8841 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3851001 (3.8 MB)  TX bytes:3551440 (3.5 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:578 errors:0 dropped:0 overruns:0 frame:0
          TX packets:578 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:162965 (162.9 KB)  TX bytes:162965 (162.9 KB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:3225 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3052 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:635287 (635.2 KB)  TX bytes:2218229 (2.2 MB)

tun1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.211.1.21  P-t-P:10.211.1.22  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@eminem:~# iptables -A POSTROUTING -t nat -s 10.8.0.0/8 -o tun1 -j MASQUERADE

简单的 iptables 规则将所有来自其 tun0 接口的流量伪装到外部 vpn 服务器的 tun1 接口,这样当我们连接到 vps 服务器的 openvpn 服务器并从 tun0 适配器获取 ip 时,我们可以使用该外部 vpn 服务器的 vpn 隧道访问互联网

现在终于连接到你的 vps 服务器的 openvpn 服务器了

shady@shady:~$ sudo openvpn --config Desktop/client.ovpn 

Volla ! 浏览互联网,无需担心 VPN 服务被阻止

在此处输入图片描述

答案4

将客户端计算机连接到 OpenVPN 服务器后的简单解决方案:

对于通过 VPN 隧道的 SSH:已连接到 OpenVPN 服务器但无法 SSH

在 Openvpn 主机上:

$ sudo ufw enable
$ sudo ufw allow 1194/udp comment "允许 OpenVPN 连接"
$ sudo ufw allow from 10.8.0.1/24 to any port 22 proto tcp comment "允许 VPN 客户端使用 SSH"

在客户端:

确保 OpenSSH 已安装并正在运行,并且防火墙上的端口 22 已打开。

相关内容