ubuntu server命令行搭建虚拟专用网
问题: 在做一个国外的开源项目,需要用到很多 ubuntu 上特定版本的应用,由于国内墙的问题,导致Ubuntu 14.04在需要添加一些国外的库的时候(add-apt-repository ppa:user/ppa-name),然后update会导致Hash Sum mismatch错误(16.06已经修复), 各种手段都用了,只有 fan 墙才能解决.下面介绍下Ubuntu14.04通过PPTP协议使用VPN
1. 安装 pptp-linux 客户端
sudo apt-get install pptp-linux
2. 查看电脑的网卡与网关信息
记录信息,在关闭 VPN 时使用
ifconfig
查看自己的网卡名字 $ETH0
,
route -n
查看自己默认网关信息 $GATEWAY
3. 建立VPN 连接
sudo pptpsetup --create 本地名 \
--server 服务器域名(或 IP) --username VPN账户用户名 \
--password VPN账户密码 --encrypt --start
这时 ifconfig
会发现多了一个叫做 ppp0
的网卡,虽然VPN已经连接成功,但是路由没有通过VPN上网,因为当前路由的默认网关是还是上述$GATEWAY
, 我们需要流量从网卡 ppp0
发出去我们需要修改默认网关.
sudo ip route del default
sudo ip route add default dev ppp0
4. 建立 vpn 的最后一步,也是关键一步
将DNS改为google域名解析服务器的 8.8.8.8
或者 8.8.4.4
成功连接到远程VPN服务器。
通过刚才的创建脚步:
在/etc/ppp/peers目录下面,会生成一个叫$本地名
的文件。
在/etc/ppp目录下面,用户名和密码会写在chap-secrets文件中。
5. 关闭VPN
由于之前我们把默认路由删除了, 关闭 VPN 时是没法上网的,需要做以下操作
#!/bin/bash
set -e
sudo ifconfig $ETH0 down
sudo ifconfig $ETH0 up
sudo route add default gw $GATEWAY
现在就可以正常上网了:)
贴上脚本
开启VPN
#!/bin/bash
# 使用前安装pptp-linux工具
set -e
sudo pptpsetup --create nowgood --server us01.blockcn.net \
--username *** --password *** \
--encrypt --start
sudo ip route del default
sudo ip route add default dev ppp0
关闭 VPN
#!/bin/bash
set -e
sudo ifconfig $ETH0 down
sudo ifconfig $ETH0 up
sudo route add default gw $GATEWAY