以阿里云VPS服务器为例介绍LINUX系统centos配置OPENVPN(TCP和UDP两种模式)

这篇文章教你以openvpn这款软件作为翻墙工具,内容比较详细。同时对LINUX的基本操作SSH做个简单介绍,SSH工具无论是搭建翻墙环境还是以后你利用他来搭建虚拟主机做网站等都用的着。
环境:阿里云 centos 6.5
一、搭建openvpn环境前的准备操作——登录SSH
1、下载阿里云更新源:点击这里
下载后解压update_source.tgz这个文件,解压出的文件是update_source.sh。
下载安装FTP上传工具filezilla:点击这里
打开filezilla的菜单里“文件”的“站点管理器”,设置SFTP主机、账号、密码。也即是VPS服务器的IP、账号root和机器密码。其他设置如图所示。

040

上传update_source.sh到VPS服务器端root目录下,上传下载的过程这里不讲,很简单。如果不会FTP基本操作的可看FTP的教程(教程里是普通的FTP,这是是SFTP,略有不同看上图设置就知道了):点击这里

039

2、SSH工具putty下载:点击这里
打开putty的主界面,点击translation,选择UTF-8编码。因为阿里云VPS服务器默认装的是中文linux系统,所以不这样设置登录SSH容易出现乱码。
043

然后点击session菜单,输入VPS服务器IP地址。点击“open”开始连接:

042

提示输入机器账号和密码。账号就是root,密码就是购买VPS分配给你的机器密码。注意这里的密码是显示不出的,但实际你已经输入,另外如果你是复制的,只要先复制密码,然后在要输入密码的地方右键即可(无需多余操作),然后回车即可!

044

以上就是登录SSH的过程。如果要改机器密码输入命令:
passwd root
047

二、OPENVPN客户端安装、设置:
以下的内容不要太钻进去,知道具体的安装过程就行,至于原理就不做细细的探究。
1、OPENVPN安装前的准备工作:
更新yum源,输入命令(回车执行命令):bash update_source.sh

045

等更新yum源后,直到提示命令输入才进行下一步,继续输入命令:

yum install -y lzo lzo-devel openssl openssl-devel pam pam-devel

yum install -y pkcs11-helper pkcs11-helper-devel

041

2.安装openvpn服务

(1)下载openvpn的源码包

wget http://oss.aliyuncs.com/aliyunecs/openvpn-2.2.2.tar.gz

(2)使用rpmbuild将源码包编译成rpm包来进行安装

rpmbuild -tb openvpn-2.2.2.tar.gz

执行这条命令以后就会正常开始编译了,编译完成以后会在/root/rpmbuild/RPMS/x86_64目录下生成openvpn-2.2.2-1.x86_64.rpm安装文件。
cd /root/rpmbuild/RPMS/x86_64
rpm -ivh openvpn-2.2.2-1.x86_64.rpm
3、配置OPENVPN服务(服务端)
cd /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0
ln -s openssl-1.0.0.cnf openssl.cnf
做个软链接到openssl-1.0.0.cnf配置文件
source ./vars
./clean-all
清除并删除keys目录下的所有key
./build-ca
生成CA证书,刚刚已经在vars文件中配置了默认参数值,多次回车完成就可以
————————————————————————
./build-key-server server

生成服务器证书,其中server是自定义的名字(这里就用server好了,因为系统默认的就是server,否则后续还要在server.conf里改名),一直回车,到最后会有两次交互,输入y确认,完成后会在keys目录下保存了server.key、server.csr和server.crt三个文件。
053

—————————————–
创建客户端用户秘钥与证书

./build-key client

创建用户名为client 的秘钥和证书,其中client是自定义的名字(这里就用client好了,因为系统默认的就是client,否则后续还要在client.conf里改名),一直回车,到最后会有两次确认,只要按y确认即可。完成后,在keys目录下生成1024位RSA服务器密钥client.key、client.crt和client.csr三个文件。
————————————————

生成Diffie Hellman参数

./build-dh

执行了./build-dh后,会在keys目录下生成dh参数文件dh1024.pem,dh1024.pem文件客户端验证的时候会用到。
———————————————-
将/usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys目录下的所有文件复制到/etc/openvpn下

cp -a /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys/*  /etc/openvpn/

复制openvpn服务端配置文件server.conf文件到/etc/openvpn/目录下

cp -a /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf  /etc/openvpn/
————————————————-
server.conf配置:
cd /etc/openvpn/
vi server.conf

有人不懂怎么编辑centos的系统文件,是通过vi这个命令编辑的,vi之后再点击i键后移动光标编辑,按ctrl+c保存后,按大写锁定键caps lock后,按两次Z键即可完成编辑并保存,调回SSH主窗口。

比如点击i键后会出现“–INSERT–”编辑提示,看下图:
在这里要编辑哪些内容呢?把以前内容的分号“;”前去掉:
;push “redirect-gateway def1 bypass-dhcp”
;client-to-client
;user nobody
;group nobody
;log openvpn.log
如图箭头所示。另外DNS信息改成这样并去掉分号(经实践,这步可有可无,223.5.5.5和223.6.6.6是阿里云公用的DNS服务器):
push “dhcp-option DNS 223.5.5.5″
push “dhcp-option DNS 223.6.6.6″

046

055

记录下这一行中的内网IP段10.8.0.0,在以下配置防火墙iptables这个内网IP段会用到并且要一致。

054

编辑完成后,保存。可用如下命令,再看看编辑配置成果(这个命令去掉server.conf中繁琐的解释,以简洁明了的展现形式来表达,并不更改任何结果):
egrep -v "^$|^#|^;" /etc/openvpn/server.conf

060

三、防火墙 iptables的设置:
一般centos系统的VPS服务器都是装iptables防火墙,如果不放心存不存在可以用命令安装:
yum -y install iptables
阿里云是装了iptables防火墙的,只是没启用。要启用就得写规则在里面并启动,以下将是详细内容。
1.开启转发
vi /etc/sysctl.conf
修改以下内容:
net.ipv4.ip_forward = 1
然后使内核参数生效:
sysctl -p
2.添加iptables规则确保服务器可以转发数据包到阿里云内外网
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 101.200.214.174
以上这一行代码用下者替代也是可以的。
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE
注意,这里的10.8.0.0和刚才配置server.conf里的内网IP段要一致。上面这行中eth1是网卡的名称。阿里云有两个网卡,一个内网网卡,一个外网网卡。外网的IP就是公用IP,也就是拿到我们手中的IP,也就是SSH登录的IP。这里要填外网eth1。如果想知道某个VPS服务器有哪些网卡,都是一些什么名称,可以用以下命令:
ifconfig
061

保存iptables
service iptables save
启动相关服务
service openvpn start
service iptables start
或者
/etc/init.d/openvpn start
/etc/init.d/iptables start
如果更改过openvpn设置或iptables设置,可用以下命令重启动(达到启动并清除缓存的设置):
service openvpn restart
service iptables restart
另外通过netstat -ano | grep 1194 查看1194端口在监听,确保openvpn在运行中。
四、openvpn客户端设置:
1、安装openvpn客户端:点击这里
2、下载复制重要配置文件:
通过SFTP下载服务器端/etc/openvpn里的ca.crt、client.crt、client.csr、client.key、dh1024.pem下载到openvpn客户端本地的config目录里。
056

配置client.opvn
将openvpn安装路径下的\OpenVPN\sample-config\目录中下的client.opvn复制到openvpn安装路径下的\OpenVPN\config目录下,然后用记事本打开修配置文件中的如下参数:
proto udp
去掉前面的分号,采用与服务器端server.conf相同的udp协议
remote  1.1.1.1  1194
此处将1.1.1.1修改为用户的云服务器的公网IP地址,同时将该行前面的注释分号去掉。这里的例子即:
remote  101.200.214.174  1194
末尾处加上这四行:
redirect-gateway def1
tun-mtu 1400
tun-mtu-extra 32
mssfix 1400
特别是最后三行,如果选择UDP协议,那么经测试这三行是必须的。如果没有这三行,阿里云UDP方式下的VPN虽然可以登录上去,但打开网页特别慢。加上这三行,VPN速度就很理想了!另外,如果是手机OPENVPN上网的话将其中1400的值都改为1300的值实践证明效果不错!其他VPS服务器可以自己测试

057
以win7系统为例右击openvpn-gui.exe,以“管理员身份运行”。

012

connect。提示连接成功!(这里有disconnect、edit config等会都可以用到)

013

如果不加那三行,那就改成TCP方式的VPN,修改server.conf,改成
proto tcp
保存后,输入命令:
service openvpn restart

058

而客户端的话,先断开VPN连接,也就是disconnect。“edit config”编辑client.opvn,改以下两行。变成:
proto tcp
;proto udp

059

保存,再connect。
013

总之无论在UDP方式还是在TCP方式都VPN成功了:

052

tcp保证两端的数据传输100%能传给对方,但因为是保证传输速度会慢一点而且传输的数据会有延迟而且传输的数据不够连贯。

udp保证实时传输(比如视频,语音)强调的是连贯实时性,但不保证所有的数据都能传输成功(这也是为什么视频聊天会卡)

传文件用tcp,视频聊天,视频直播,实时语音就用udp。

本文参考文献:https://help.aliyun.com/knowledge_detail/7600231.html?pos=1

发表评论