当前位置:   article > 正文

Ubuntu一键部署Open VN

Ubuntu一键部署Open VN

vpn咋就不能成为标题了,现在企业必备的技能不能用了?

1、下载安装

1.1 登录root账户

su root
  • 1

1.2 下载一键部署脚本

git clone https://github.com/guoew/openvpn-install.git
  • 1

1.3 运行脚本

cd openvpn-install &&  bash openvpn-install.sh
  • 1
IP address: 106.75.XX.XXX     #公网IP地址
Protocol [1-2]: 1              #采用UDP协议
Port: 1194                     #默认1194端口,我自己修改成了6666端口
DNS [1-5]: 1                   #默认就可以
Client name: client            #客户端配置文件名称默认就可以
  • 1
  • 2
  • 3
  • 4
  • 5

2、添加账号

openvpn目录下的userfile.sh中添加用户名口令,以空格隔开

cat /etc/openvpn/userfile.sh
username password
  • 1
  • 2

3、客户端安装和配置

3.1 将客户端配置文件 /root/client.ovpn,下载到本地以备客户端使用
3.2 安装openvpn客户端
客户端下载地址:https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.0-I602.exe
3.3 配置客户端
将安装好的客户端打开,点击Import file 把准备好的客户端配置文件(client.ovpn)导入进去。
3.4 连接openvpn服务器
打开客户端,点击Connect,使用服务器端已添加的账号登录

4、连接VPN后无法上网

在本地client.ovpn文件中添加如下4行配置

# setenv opt block-outside-dns #注释该行
# ignore-unknown-option block-outside-dns  #注释该行
# block-outside-dns   #注释该行,本条意思是阻止使用外部DNS
route-nopull  #关闭server自动推送路由
  • 1
  • 2
  • 3
  • 4

5、 配置解读

5.1 cat /etc/openvpn/server/server.conf

local x.x.x.x  
#监听本机ip地址
port 1194   
#监控本机端口号
proto udp   
#指定采用的传输协议
dev tun   
#指定创建的通信隧道类型,可选tun或tap,window服务器必须是tap
;server-bridge XXXXXX   
#使用tap模式的时候考虑此选项。
ca /etc/openvpn/certs/ca.crt  
#指定CA证书的文件路径
cert /etc/openvpn/certs/server.crt   
#指定服务器端的证书文件路径
key /etc/openvpn/certs/server.key   
#指定服务器端的私钥文件路径
dh /etc/openvpn/certs/dh.pem   
#指定迪菲赫尔曼参数的文件路径
server 10.8.0.0 255.255.255.0   
#指定虚拟局域网占用的IP地址段和子网掩码,不能和服务器eth0同网段
ifconfig-pool-persist ipp.txt   
#服务器自动给客户端分配IP后,客户端下次连接时,仍然采用上次的IP地址(第一次 分配的IP保存在ipp.txt中)。
;push "redirect-gateway def1 bypass-dhcp"   
#自动推送客户端上的网关及DHCP,此项开启了流量转发,有这项才能使用服务器代理
;push "dhcp-option DNS 114.114.114.114"   
#OpenVPN的DHCP功能为客户端提供指定的 DNS、WINS 等
;push "route 10.0.10.0 255.255.255.0"   
#vpn服务端向客户端推送vpn服务端内网网段的路由配置,以便让客户端能够找到服务端内网。多条路由就写多个Push指令
;push "route 192.168.10.0 255.255.255.0"    
#vpn服务端向客户端推送vpn服务端内网网段的路由配置,以便让客户端能够找到服务端内网。多条路由就写多个Push指令
;client-to-client   
#允许客户端与客户端相连接,默认情况下客户端只能与服务器相连接
;duplicate-cn   
#允许同一个客户端证书多次登录,默认是注释的,不支持多个客户登录一个账号
keepalive 10 120   
#每10秒ping一次,120秒后没收到ping就说明对方挂了
tls-auth /etc/openvpn/certs/ta.key 0   
#开启TLS-auth,使用ta.key防御攻击。服务器端的第二个参数值为0,客户端的为1。
cipher AES-256-GCM   
#加密认证算法,2.4之前是AES-256-CBC,v2.4客户端/服务器将在TLS模式下自动协商AES-256-GCM。
push "compress lz4-v2"   
#openvpn 2.4版本的vpn才能设置此选项。表示服务端启用lz4的压缩功能,传输数据给客户端时会压缩数据包。
;comp-lzo   
#如果是2.4版本以下的老版本,则使用用comp-lzo指令,如果服务端配置了该指令,客户端也必须要配置
max-clients 100   
#并发客户端的连接数
user openvpn   
#定义运行的用户和组,openvpn用户是安装的时候系统自动创建的
group openvpn   
#定义运行的用户和组,openvpn用户是安装的时候系统自动创建的
persist-key   
#通过ping得知超时时,当重启vpn后将使用同一个密钥文件以及保持tun连接状态
persist-tun   
#通过ping得知超时时,当重启vpn后将使用同一个密钥文件以及保持tun连接状态
status /var/log/openvpn-status.log   
#输出短日志,每分钟刷新一次,以显示当前的客户端,在文件中输出当前的连接信息,每分钟截断并重写一次该文件
;log /etc/openvpn/log/openvpn.log   
#默认vpn的日志会记录到rsyslog中,log指令表示每次启动vpn时覆盖式记录到指定日志文件中
;log-append /etc/openvpn/log/openvpn.log   
#默认vpn的日志会记录到rsyslog中,og-append则表示每次启动vpn时追加式的记录到指定日志中,但两者只能选其一。
verb 3   
#指定日志文件的记录详细级别,可选0-9,等级越高日志内容越详细
mute 20   
#相同信息的数量,如果连续出现 20 条相同的信息,将不记录到日志中
;explicit-exit-notify 1   
#这项仅udp连接可用,当服务器重新启动时,通知客户端,以便它可以自动重新连接。
tls-version-min 1.3   
#设置tls最低版本为1.3,连接的客户端如果是2.4以下则配置为1.0
resolv-retry infinite    
#自动重连
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70

5.2 服务器配置

echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf   
#配置系统转发,需要代理shangwang的必须配置
sysctl -p   
#配置立即生效
systemctl stop firewalld   
#关闭firewall
systemctl disable firewalld   
#关闭firewall
systemctl enable iptables   
#启动iptables
systemctl start iptables   
#启动iptables
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE   
#配置iptables转发流量,代理主要以iptables转发实现
iptables -I INPUT -p tcp --dport 1194 -j ACCEPT   
#允许tcp/udp 1194通过防火墙
iptables -I INPUT -p udp --dport 1194 -j ACCEPT   
#允许tcp/udp 1194通过防火墙
service iptables save   
#保存规则并重启
systemctl restart iptables   
#重启iptables
systemctl enable openvpn@server   
#设置openvpn开机启动
systemctl start openvpn@server   
#启动openvpn
netstat -lntp|grep openvpn   
#查看端口和进程是否启动成功,
ps -aux|grep openvpn
#显示所有用户的进程和用户
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

5.3 OpenvVPN路由控制
1、route-nopull
如果在客户端配置文件中配route-nopull,openvpn连接后将不会在电脑上添加任何路由,所有流量都将本地转发。

route-nopull
  • 1

2、vpn_gateway
如果在客户端配置文件中配vpn_getaway,默认访问网络不走vpn隧道,如果可以通过添加该参数,下发路由,访问目的网络匹配到会自动进入VPN隧道。

route 10.0.0.0 255.255.255.0  vpn_gateway
route 172.16.0.0 255.255.255.0  vpn_gateway
  • 1
  • 2

3、net_gateway
这个参数和 vpn_gateway 相反,表示在默认出去的访问全部走 openvpn 时,强行指定部分IP地址段访问不通过 Openvpn 出去。
max-routes 参数表示可以添加路由的条数,默认只允许添加100条路由,如果少于100条路由可不加这个参数。

max-routes 1000
route 10.100.0.0 255.255.255.0 net_gateway
  • 1
  • 2

5.4 Openvpn开机自动启动-自动连接
1、打开 client.ovpn文件在最后加入

auth-user-pass pass.txt
  • 1

在同级文件夹下新建pass.txt文件,第一行写用户名,第二行写密码。
例如:

zhangxueyou
123456
  • 1
  • 2

2、在注册表(在windows运行输入regedit)中加入下面的项用来自动启动和自动连接

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • 1

新建“字符串值”数值如下:

"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect client.ovpn
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/182667
推荐阅读
相关标签
  

闽ICP备14008679号