我在云中有一台服务器(AWS EC2 Windows Server 2022),其中将运行应用程序服务器,我也将其转变为我的 OpenVPN 服务器。我能够设置服务器和客户端,我什至可以访问共享文件夹并对服务器执行 ping 操作,但仅限于使用服务器的 IP 地址(在我的 OpenVPN 设置中为 10.8.0.1)。但是,当我尝试使用主机名访问或 ping 服务器时,它显示“Ping 找不到主机...”。从服务器访问客户端时也是如此。仅通过 IP 地址有效。如何使用服务器的主机名访问并 ping 服务器? 以下是我的服务器配置:
port 1194
proto udp4
dev tun
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\server.crt"
key "C:\\Program Files\\OpenVPN\\config\\server.key"
dh "C:\\Program Files\\OpenVPN\\config\\dh2048.pem"
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist "C:\\Program Files\\OpenVPN\\log\\ipp.txt" 5
duplicate-cn
keepalive 10 120
tls-auth "C:\\Program Files\\OpenVPN\\config\\ta.key" 0
cipher AES-256-GCM
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1
client-config-dir "C:\\Program Files\\OpenVPN\\config\\ccd"
问题解决了! 我没有使用 TUN,而是将其更改为 TAP。
TUN 运行在 OSI 模型的网络层(第 3 层)。 TUN 设备处理 IP 数据包并根据其目标 IP 地址路由它们。
当 VPN 客户端需要集成到本地网络中(就像物理连接到本地网络一样)时,通常会使用 TAP。
我使用了以下服务器配置:
port 1194
proto udp
dev tap
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\server.crt"
key "C:\\Program Files\\OpenVPN\\config\\server.key"
dh "C:\\Program Files\\OpenVPN\\config\\dh2048.pem"
topology subnet
ifconfig-pool-persist "C:\\Program Files\\OpenVPN\\log\\ipp.txt" 5
;server-bridge 10.0.0.2 255.255.255.0 10.0.0.192 10.0.0.254
server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
client-to-client
duplicate-cn
tls-auth ta.key 0
cipher AES-256-CBC
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1
script-security 2
然后是客户端配置:
remote [server's public IP or domain] 1194
client
proto udp
dev tap
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\ccd\\client.crt"
key "C:\\Program Files\\OpenVPN\\config\\ccd\\client.key"
tls-auth "C:\\Program Files\\OpenVPN\\config\\ta.key" 1
cipher AES-256-CBC
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1
<ca>
--STRIPPED INLINE CA CERT--
</ca>