在 Ubuntu 上架设 OpenVPN 的智能网关

如果你没有一款支持 OpenWRT 等系统的路由器,又想让私有网络里的其它终端都能使用比较智能的网关翻墙的话,那么可以使用下面介绍的方法。

首先你需要有一个国外的 OpenVPN 账号,其次私有网络里有一台终端安装了 OpenVPN 客户端,这里就以 Ubuntu 系统为例,其它系统类似。

安装 OpenVPN
OpenVPN 在 Ubuntu 系统里的打包是服务端和客户端共享的,只是配置文件不同。

sudo apt-get install openvpn

导入证书
准备好你的证书和密钥,一共三个文件,分别是 ca.crt、client.crt、client,key,复制到 /etc/openvpn/keys/ 目录。

sudo mkdir /etc/openvpn/keys
sudo cp ca.crt client.crt client.key /etc/openvpn/keys/

生成智能路由表
http://code.google.com/p/chnroutes/downloads/list 下载 chnroutes_ovpn_linux

python chnroutes_ovpn_linux
sudo mkdir /etc/openvpn/scripts
sudo cp vpnup vpndown /etc/openvpn/scripts/

编写配置文件

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client.conf
sudo vim /etc/openvpn/client.conf  # 下面是需要修改的部分
remote my-server-1 1194  # my-server-1 修改成 vpn 服务器地址
 
user nobody
group nogroup
 
ca keys/ca.crt
cert keys/client.crt
key keys/client.key
 
scripts-security 2
up scripts/vpnup
down scripts/vpndown

启动和停止 VPN 服务
由于 OpenVPN 是系统服务,而且是开机自动启动的。

sudo service openvpn start # 启动服务
sudo service openvpn stop # 停止服务

设置 NAT

sudo sysctl net.ipv4.ip_forward=1
sudo vim /etc/sysctl.d/10-ip-forward.conf
net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
sudo iptables-save > /tmp/firewall.rules
sudo cp /tmp/firewall.rules /etc/
sudo vim /etc/rc.local
# /etc/rc.local
/sbin/iptables-restore < /etc/firewall.rules
exit 0

其它终端设置
其它终端修改原来的网关地址为新的智能网关地址,如果使用DHCP服务器分配地址的,可能给智能网关使用手动指定的地址,然后将DHCP服务器的地址分配中修改网关为智能网关的地址。

Over!

2 thoughts on “在 Ubuntu 上架设 OpenVPN 的智能网关”

Leave a Reply

Your email address will not be published. Required fields are marked *