我有一台运行 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/someDir
以chromium
使用不同的 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 已打开。