如何使用 openvpn 进行浏览

如何使用 openvpn 进行浏览

我刚刚开始使用 VPN 和 OpenVPN。我的理解是,当我有 VPN 连接时,就好像我和服务器在同一个网络上。然后我应该能够通过本地地址 (10.8.xx) 连接到服务器。接下来我应该能够通过服务器浏览互联网。

我在云端有自己的服务器,用于存放个人物品。我可以用它来做任何我想做的事情。它运行在 Debian 7 上。我安装了 openvpn,可以从我的笔记本电脑连接到它。我以为这会将我的 IP 地址更改为服务器的 IP 地址,但当我在浏览器中打开 whatismyip.com 时,我仍然看到我的正常 IP。

这是 ifconfig 的输出:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=3<RXCSUM,TXCSUM>
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    inet 127.0.0.1 netmask 0xff000000
    inet6 ::1 prefixlen 128
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=27<RXCSUM,TXCSUM,VLAN_MTU,TSO4>
    ether 00:23:df:89:81:82
    media: autoselect
    status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 00:23:6c:8f:4f:47
    inet6 fe80::223:6cff:fe8f:4f47%en1 prefixlen 64 scopeid 0x5
    inet 192.168.1.22 netmask 0xffffff00 broadcast 192.168.1.255
    media: autoselect
    status: active
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
    ether 02:23:6c:8f:4f:47
    media: autoselect
    status: inactive
tun0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 10.8.0.6 --> 10.8.0.5 netmask 0xffffffff
    open (pid 909)

所以我有点迷茫了。我必须在浏览器中配置代理吗?如果是这样,那只是浏览器。有没有办法设置开关仅通过 vpn 连接?如果我误解了 vpn 的工作方式,请解释一下。

答案1

不要使用 OpenVPN,而要使用 SSH 隧道。这种方式效果更好,设置起来也更容易,而且也是加密的。与 OpenVPN 不同的是,如果连接关闭,您将无法再浏览互联网。使用 OpenVPN,如果连接关闭,您将自动返回到自己的网络,并被允许继续浏览而无需警告。您的服务器上无需进行任何更改。

如果您的计算机上运行的是 Windows:

  1. 下载 PuTTY(如果你还没有)
  2. 在类别侧面板中,转到连接>SSH,然后选中启用压缩
  3. 在类别侧面板中,转到连接>SSH>隧道,然后在源端口字段中输入一个数字。我通常使用 3456。然后选择动态,最后单击添加。
  4. 在类别侧面板中,返回到会话。在主机名字段中输入您的用户名@主机名(将 your_username 替换为您在系统上的用户名,将 hostname 替换为您服务器的域或 IP 地址),然后保存会话。
  5. 单击“打开”,然后输入您的密码。
  6. 如果您还没有安装 Firefox,请下载。
  7. 在 Firefox 中,转到 Firefox>选项,然后转到高级>网络>设置。
  8. 选择手动代理配置,然后删除所有可编辑框中的所有内容。
  9. 输入 localhost 作为 SOCKS 主机,并输入 3456(或您在步骤 3 中使用的任何端口)作为端口。
  10. 单击“确定”打开两个 Firefox 配置窗口。
  11. 在 Firefox 的位置栏中输入 about:config 并按回车键。告诉 Firefox 你会小心的。
  12. 搜索 network.proxy.socks_remote_dns 并双击它将其设置为 true。

如果您的家用计算机上运行 Linux 或 Mac OS:

  1. 打开终端并输入 ssh -CD:3456 your_username@hostname (将 your_username 替换为您在系统上的用户名,将 hostname 替换为您服务器的域或 IP 地址)并按 Enter。
  2. 如果您还没有安装 Firefox,请下载。
  3. 在 Firefox 中,转到编辑>首选项,然后转到高级>网络>设置。
  4. 选择手动代理配置,然后删除所有可编辑框中的所有内容。
  5. 输入 localhost 作为 SOCKS 主机,并输入 3456(或您在步骤 3 中使用的任何端口)作为端口。
  6. 单击“确定”打开两个 Firefox 配置窗口。
  7. 在 Firefox 的位置栏中输入 about:config 并按回车键。告诉 Firefox 你会小心的。
  8. 搜索 network.proxy.socks_remote_dns 并双击它将其设置为 true。

完成后,关闭 PuTTY 或终端,并将 Firefox 设置为使用无代理,而不是您配置的手动代理。下次您想要连接时,只需运行保存的 PuTTY 会话或运行命令行命令,并将 Firefox 设置为使用手动代理配置选项。Firefox 会记住您的代理设置。

答案2

(请注意,我给出的例子都是最简单的,你需要确保自己理解它们的工作原理并充实它们,否则你可能会把自己锁在盒子外面。此外,这些说明不是永久性的 - 所以如果你做了一些愚蠢的事情,你至少可以重新启动以让问题消失。)我不认为这种性质的代理是一个好主意,因为它会给你带来复杂性、速度降低和曲线问题,并作为一个永远在线的解决方案。

您不需要配置代理。您需要确保您的 OpenVPN 服务器通过 OpenVPN 服务器提供默认路由(并且具有较低的度量,因此是首选)。

推送“重定向网关 XXXX def1”

您可能还需要告诉 OpenVPN 服务器对连接进行 NAT,以便它共享服务器的 IP 地址 - 因为 10.xxx 不是全局路由。您可以通过在服务器上添加命令来执行此操作

iptables -t NAT -A POSTROUTING -o ethX -j MASQUERADE

如果您想确保通过 OpenVPN 连接,您需要在 VPN 客户端上放置防火墙,防止流量通过正常接口传出(发往 OpenVPN 服务器的流量除外)。

iptables -I 输入 -j DROP
iptables -I 输入 -s 服务器.IP -j 接受

相关内容