解决PPTP连接VPN后无网络

  • 2020-05-16
  • 33
  • 0

解决 PPTP 连接 VPN 后本地电脑无法访问互联网,以及本地电脑做代理服务器使远程服务器访问互联网。

1. 本地电脑访问互联网

解决 PPTP 连接 VPN 后本地电脑无法访问互联网。

1.1 查看远程服务器网段

连接 VPN,远程服务器上执行 ipconfig,根据自己远程服务器的 ip 找网段。

如我远程桌面时填写的 ip 是 10.10.10.155,则在远程服务器中找到网段为如下图红框所示:

image-20200515214334281

则网关为 10.10.10.0,子网掩码为 255.255.255.0,下面添加路由时需要使用。

1.2 更改网关

  1. 断开 VPN,在 windows 网络配适器中找到 vpn 的配适器,右击“属性” -> “网络” -> 左击“Internet协议版本4” -> “属性” -> “高级” -> “ip 设置” -> 取消勾选“在远程网络上使用默认网关”;

  2. 重新连接 VPN,本地电脑执行 ipconfig 得到 VPN 给本地分配的 ip,如下图:
    image-20200515215158392

    本次我的本地电脑 ip 为 192.168.8.146。

  3. 管理员打开命令行,根据上步中得到的远程网段添加路由:route add [remotenet] mask [remotemask] localIP,对于本文来说为:

    route add 10.10.10.0 mask 255.255.255.0 192.168.8.146
    

这样本地就既可以远程 VPN 上的服务器,又可以访问互联网。

这里贴出对于 VPN 配适器名为 PPP 的 ip 提取以及路由添加代码(powershell),存为 ps1 文件,放到 PATH 中可一键调用:

$a = ipconfig | grep -azio 'ppp.*' | grep -ai 'v4' -m 1 | awk '{print $NF}';route add 10.10.10.0 mask 255.255.255.0 $a;

2. 远程服务器访问互联网

本地电脑做代理服务器使远程服务器访问互联网,以便项目环境配置。

2.1 本地电脑做代理

此处用的 Python 开发的 http/https 代理工具,作者 repo: qwj/python-proxy,详细文档见作者 repo。此处贴出 http 代理简单用法:

安装:

pip3 install pproxy

http 代理:

pproxy -vv  # 默认端口 8080,-vv: 显示日志

打开代理后,可能还需要在系统防火墙中开启对应端口的入方向。

Windows 下 asyncio 事件循环无法被键盘中断,故此程序运行无法使用 ctrl + c 终止,解决办法是在其 server.py (位置: pathTo\site-packages\pproxy\server.py )中加入(参考: Why does the asyncio’s event loop suppress the KeyboardInterrupt on Windows?):

import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

2.2 远程服务器使用代理

对于上面的代理,本地连接 VPN 后 ip 为: 192.168.8.146,则远程服务器使用为:

npm 使用代理:

# 设置代理
npm config set proxy http://192.168.8.146:8080
# 删除代理
#npm config delete proxy

pip 使用代理:

pip --proxy 192.168.8.146:8080 install packageName

版权声明: 本网站所有资源采用BY-NC-SA 4.0协议进行授权,转载应当以相同方式注明文章来自:解决PPTP连接VPN后无网络 - 一方的天地

评论

还没有任何评论,你来说两句吧

发表评论

陕ICP备18010914号
知识共享许可协议
本作品由一方天地采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资源请尽快联系站长,本站会在24h内删除有争议的资源。 -