我们搭建VPN采用的是openvpn,搭建过程总体需要经过三大步骤:
1、openvpn的安装与配置
2、端口转发
3、系统重启iptables规则自动生效
注意:以下所有名令在root权限下输入(进入root权限命令 sudo su) 下面用红颜色标注的字体是修改了的;如果按以前的操作失败了的可以把下面两条红色的语句重新添加到服务器中就可以了。
PS:感谢jsa大神指正我的错误.
一、openvpn的安装与配置
openvpn安装与配置教程,此链接中的内容介绍了openvpn的安装与配置步骤(图文并茂)
二、端口转发
第一步完成后,本地服务器与云服务器组成了一个局域网(我们配置后的本地服务器虚拟网卡IP为10.8.0.6,云服务器虚拟网卡IP为10.8.0.1),可以试着在本地服务器上运行命令 ping 10.8.0.1或者在云服务器上运行命令 ping 10.8.0.6,如果数据包都能被接收说明两台服务器已成为一个局域网,否则说明配置未成功。
在做端口转发时先看看这篇博客http://blog.csdn.net/daisy_chenting/article/details/7058145 它介绍了iptables规则了,如果想详看可以去看看《鸟哥的Linux私房菜》。
云服务器与本地服务器IP:
本地服务器IP: 172.16.200.33 本地服务器虚拟网卡IP: 10.8.0.6 端口:80
云服务器公网IP: 115.159.185.192 端口:80 内网IP(虚拟网卡IP):10.8.0.1 端口:80
端口转发命令:
sysctl net.ipv4.ip_forward=1(这条必须写到/etc/sysctl.conf文件下,否则当服务器重启时,路由功能会失效,导致要访问的页面失败)
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 10.8.0.6:80
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -t nat -A POSTROUTING -d 10.8.0.6 -p tcp --dport 80 -j SNAT --to 10.8.0.1
最后三条命令就是将所有访问10.8.0.6的用户请求访问的源IP改为10.8.0.1,让10.8.0.6误以为是10.8.0.1发送的请求,由于它们已在同一个局域网中,所以可以访问成功。
三、系统重启iptables规则自动生效
有两种方法可以在系统重启后使得iptables规则自动生效,两种修改方法如下:
1、 修改Operation System
iptable-save > /etc/iptables-config (root权限下,将当前规则存到/etc/rc.local文件中) (保存iptables规则这条语句以前漏掉了,现在添加上)
iptables-restore < /etc/iptables-config (在/etc/rc.local文件末尾添加这条命令,Ubuntu开机之后会执行/etc/rc.local文件中的脚本)
2、修改网卡
iptables-save > /etc/iptables.up.rules (root权限下,将当前规则存到/etc/iptables.up.rules文件中)
pre-up iptables-restore < /etc/iptables.up.rules (修改脚本/etc/network/interfaces,在其末尾添加这条命令,在网络启动时应用防火墙规则)
注:先去了解下对文件的操作