区别于网上能搜到的其他文章,这些都是经过测试成功的,但是需要点小基础,openvpn server端是联通网络,ppoe拨号获得公网ip,有免费域名解析,客户端电信,非公网ip,直接通过ddns域名连接服务器。
首先,设置server.conf文件如下:
采用DEV TAP,二者区别如下:另外,更改1194端口.
-
TUN (网络层)(单纯访问资源):
- TUN设备是一个点对点的虚拟网络接口,用于IP包的传输。
- 它只处理网络层的协议(如IP),适用于路由模式。
- 通常用于创建VPN连接,使得通过TUN传输的数据包像通过物理网络一样。
-
TAP (数据链路层)(访问网内设备):
- TAP设备是一个虚拟以太网设备,可以处理以太网帧。
- 它工作在数据链路层,适用于桥接模式。
- 适合需要在两个网络之间传输以太网数据的场景,例如需要支持广播和多播的应用。
port 23776
proto udp
dev tap
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/server.crt
key /etc/openvpn/pki/private/server.key
dh /etc/openvpn/pki/dh.pem
server-bridge 192.168.6.253 255.255.255.0 192.168.6.102 192.168.6.150
#server 10.8.0.0 255.255.255.0
#push 'route 192.168.6.0 255.255.255.0'
#push "route-gateway 10.8.0.1"
#push "redirect-gateway def1 bypass-dhcp"
keepalive 10 120
client-to-client
tls-auth /etc/openvpn/ta.key 0
cipher AES-256-CBC
persist-key
persist-tun
user nobody
group nogroup
status /tmp/openvpn-status.log
log-append /var/log/openvpn.log
verb 4
端口不用1194,怀着小窃喜,有可能会躲过一波扫描,再就是协议选择了TAP,解决了服务器推送路由,和客户端接收到的地址不准确的问题(困扰了很久,但是也还能用,不知道抽啥风)
server-bridge 192.168.6.253 255.255.255.0 192.168.6.102 192.168.6.150
这一行的意思告诉客户端,192.168.6.253是网关,192.168.6.102-150是可以分配给客户端的ip,注意:网关必须是网关的地址,不要担心有冲突换成别的ip,其他的选项不做解读,有兴趣可查阅我的下一篇文章。
文件写好后保存,并且路由器上选择自定义,若不然,server.conf根本不能作用,起作用的是:
/etc/confg/openvpn这个配置文件。
如下图:
需要和下面这个文件做好区别,这个文件中,啥也不是,你若非自定义,则需要修改它:
root@H3C:~# cat /etc/config/openvpn
config openvpn 'custom_config'
option config '/etc/openvpn/server.conf'
option enabled '1'
config openvpn 'sample_server'
option port '1194'
option proto 'udp'
option dev 'tun'
option ca '/etc/openvpn/ca.crt'
option cert '/etc/openvpn/server.crt'
option key '/etc/openvpn/server.key'
option dh '/etc/openvpn/dh2048.pem'
option server '10.8.0.0 255.255.255.0'
option ifconfig_pool_persist '/tmp/ipp.txt'
option keepalive '10 120'
option persist_key '1'
option persist_tun '1'
option user 'nobody'
option status '/tmp/openvpn-status.log'
option verb '3'
config openvpn 'sample_client'
option client '1'
option dev 'tun'
option proto 'udp'
list remote 'my_server_1 1194'
option resolv_retry 'infinite'
option nobind '1'
option persist_key '1'
option persist_tun '1'
option user 'nobody'
option ca '/etc/openvpn/ca.crt'
option cert '/etc/openvpn/client.crt'
option key '/etc/openvpn/client.key'
option verb '3'
root@H3C:~#
文件配置好以后,server端应该在接口的设备项中有一个tap0的设备,此时无需任何设置,接下来做桥接设置,修改/etc/config/network如下:
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth0'
list ports 'tap0'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.6.253'
option netmask '255.255.255.0'
option ip6assign '60'
重点就是,device中,要有tap0接口,此时,web看lan选项,会有tap和eth0的桥接。
然后,客户端配置文件选择
# Use the same setting as you are using on
# the server.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
dev tap
其他参数配置和我其他文章配置一样即可,点连接,此时连接没问题,查看客户机路由表如下:
可以访问服务器所在网络的打印机,以及网络共享资源等。手打笔记,绝对真实。
另外建议,防火墙开放端口设置成时间段限制,可以进一步提升点安全感。