![如何在 Windows 7 上使用 OpenVPN 访问 LAN 共享?](https://linux22.com/image/1518841/%E5%A6%82%E4%BD%95%E5%9C%A8%20Windows%207%20%E4%B8%8A%E4%BD%BF%E7%94%A8%20OpenVPN%20%E8%AE%BF%E9%97%AE%20LAN%20%E5%85%B1%E4%BA%AB%EF%BC%9F.png)
我感觉我错过了什么,因为我多年来一直在 Debian、Fedora 和 Macintosh 客户端上使用 OpenVPN。在我的 OpenVPN 服务器所在的家庭局域网中访问共享时从未遇到任何问题。
我可以毫无问题地访问 SMB、AFP 和 NFS。
但最近我一直在 Windows 7 客户端上使用 OpenVPN,但无法访问任何共享。
例如,我的 Synology NAS 地址为 nas.mylan.local 具有我列出的三个共享,我可以登录到其 Web 界面,从 Windows 客户端使用 nas 和 nas.mylan.local 进行解析,但我无法访问共享。
例如,我尝试过 \nas\Downloads、\nas.mylan.local\Downloads,并尝试使用网络和共享中心发现它。
如果我指定直接路径,我会收到登录提示,我所做的 Windows 客户端已经 AD 连接到另一家公司,因此我输入 \Username 来否定域。
密码在 Web GUI 中有效,但在共享提示中我收到一条错误,内容类似“用户不允许用户从这台计算机访问”。
OpenVPN 使用的 Tap 设备属于公共范围,因此我进入 Windows 防火墙并尝试将我的 LAN 地址和 VPN 地址添加到公共范围规则中 SMB 的允许公共 IP 列表中。
但没用。后来我注意到 Windows 防火墙最终还是被禁用了。
我还尝试进入范围共享选项并在公共范围内设置允许传入的共享请求。
Windows 7 和 OpenVPN 共享有什么问题?我猜这是 Microsoft 的安全功能,它阻止我访问我的共享,因为所有其他客户端都运行正常。
这是我几年来一直使用的 openvpn 服务器配置,之前在 Debian 服务器上略有不同。
server 10.8.0.0 255.255.255.0
port 1194
proto udp
dev tun0
comp-lzo
keepalive 10 120
tls-auth minserver_static.key 1
ifconfig-pool-persist ipp.txt
persist-key
persist-tun
user openvpn
group openvpn
push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DOMAIN domain.local"
ca ca.crt
cert minserver.crt
key minserver.key
dh dh2048.pem
#status /var/log/openvpn/openvpn-status.log
#log-append /var/log/openvpn.log
#verb 3
这是有问题的 Windows 7 客户端配置。它与我的 Linux、Mac 和 Android 配置完全一样。我有生成配置的 Bash 脚本和模板,但我在这里省略了证书和密钥。
client
dev tun
proto udp
remote minserver 1194
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
resolv-retry infinite
comp-lzo
push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DOMAIN domain.local"
# Comment this for the ovpn config
;tls-auth minserver_static.key 0
;ca ca.crt
;cert .crt
;key .key
<ca>
...
</ca>
...
我在服务器上的 iptables 设置非常简单,只有这些规则。
sudo firewall-cmd --add-service=openvpn
sudo firewall-cmd --permanent --zone=trusted --add-interface=tun0
sudo firewall-cmd --permanent --zone=trusted --add-masquerade
sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o enp2s0 -j MASQUERADE
sudo firewall-cmd --reload
我怀疑这是一个 openvpn 服务器问题,很可能是 Windows 中的问题。