我在 Docker 容器中运行一个实验性的 VPN 服务器。
我的docker-compose.yml
文件:
version: '3'
services:
dockovpn:
image: alekslitvinenk/openvpn
cap_add:
- NET_ADMIN
ports:
- 1194:1194/udp # Expose tcp if you defined HOST_TUN_PROTOCOL=tcp
environment:
HOST_ADDR: ${HOST_ADDR}
volumes:
- /var/lib/dockovpn:/opt/Dockovpn_data
restart: always
HOST_ADDR
我的 IP 地址在哪里?
我使用
sudo docker-compose up -d
命令,我可以从 Windows、Android 和 iOS 设备连接到 VPN。
没有client-to-client
选项server.conf
:
sudo docker exec -it dockovpn_dockovpn_1 bash
cd /opt/Dockovpn
cat config/server.conf
port 1194
proto %HOST_TUN_PROTOCOL%
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/MyReq.crt
key /etc/openvpn/MyReq.key
dh /etc/openvpn/dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
duplicate-cn
keepalive 10 120
cipher AES-256-GCM
ncp-ciphers AES-256-GCM:AES-256-CBC
auth SHA512
persist-key
persist-tun
status openvpn-status.log
verb 4
tls-server
tls-version-min 1.2
tls-auth /etc/openvpn/ta.key 0
crl-verify /etc/openvpn/crl.pem
因此,根据OpenVPN 文档,客户端不应该互相看到对方,但实际上他们可以看到对方。例如,我可以通过远程桌面连接到 IP 地址为 10.8.0.14 等的远程 Windows 计算机...
如何解决这个问题?
编辑1
在scripts\start.sh中找到以下内容:
# Allow traffic on the TUN interface.
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT
也许我最好删除iptables -A FORWARD -i tun0 -j ACCEPT
而不是添加iptables -A FORWARD -i tun0 -o tun0 -j REJECT
?