我托管了两个带有以下 docker 文件的容器
docker run --name openvpn \
-v /root/easyrsa_master:/etc/openvpn/easyrsa \
-v /root/ccd_master:/etc/openvpn/ccd \
-e OVPN_SERVER_NET='192.168.100.0' \
-e OVPN_SERVER_MASK='255.255.255.0' \
-p 7777:1194 \
-p 8080:8080 \
--net test \
--cap-add=NET_ADMIN \
openvpn:local
docker run --name ovpn_admin \
-v /root/easyrsa_master:/mnt/easyrsa \
-v /root/ccd_master:/mnt/ccd \
-e OVPN_CCD="True" \
-e OVPN_CCD_PATH="/mnt/ccd" \
-e EASYRSA_PATH="/mnt/easyrsa" \
-e OVPN_DEBUG="True" \
-e OVPN_VERBOSE="True" \
-e OVPN_NETWORK="192.168.100.0/24" \
-e OVPN_SERVER="<external_address>:7777:tcp" \
-e OVPN_INDEX_PATH="/mnt/easyrsa/pki/index.txt" \
--network="container:openvpn" \
ovpn-admin:local
托管在云端。
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether fa:16:3e:b5:a3:90 brd ff:ff:ff:ff:ff:ff
inet 192.168.250.5/24 brd 192.168.250.255 scope global dynamic eth0
valid_lft 58754sec preferred_lft 58754sec
inet6 fe80::f816:3eff:feb5:a390/64 scope link
valid_lft forever preferred_lft forever
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.250.1 0.0.0.0 UG 0 0 0 eth0
169.254.169.254 192.168.250.1 255.255.255.255 UGH 0 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-9919e04681fb
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-c3e87ce3f05f
172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-60aff89f36e9
172.21.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-eee0ae05a7a6
172.22.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-5d087fed339d
192.168.250.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
主机可以从外部访问互联网。 所以映射了2个端口。 我需要只能通过网络 192.168.250.0/24 访问端口 8080 但是当我运行它时,它也可以从外部访问。我该如何处理?
127.0.0.1:8080:8080
不起作用。
解决方案1 (安塞布尔)
iptables: chain=DOCKER-USER in_interface=eth0 protocol=tcp destination_port=8080 source=!192.168.250.0/24 jump=DROP action=insert
解决方案2
-p 8080:8080
proxy_pass http://<host port>:8080;
只需运行你的docker:
sudo docker run --rm --detach -p 127.0.0.1:9000:9000
只有内部本地主机访问,而不是整个互联网。