공용 컴퓨터를 VPN을 통해 연결된 다른 컴퓨터로 포트 포워딩하려고 합니다. 이 VPN을 통해 기기가 인터넷에 연결됩니다. 저는 데비안에서 openvpn과 iptables를 사용하고 있습니다.
VPN이 예상대로 작동하지만 포트 전달이 작동하지 않습니다. 나는 성공하지 못한 채 stackexchange에 대한 다른 많은 질문을 검토했습니다.
VPN 클라이언트는 VPN에 고정 IP를 가지고 있습니다. 공용 인터넷 주소도 고정되어 있습니다.
전달이 활성화되었습니다...
$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
클라이언트의 포트는 VPN 인터페이스를 통해 공용 컴퓨터에 열려 있지만 공용 컴퓨터에서 전달되지는 않습니다. -d <public ip>
및 와 같은 iptables 명령의 다양한 변형을 시도했지만 -i eth0
내가 뭘 잘못하고 있는지 알 수 없습니다.
$ iptables -t nat -A PREROUTING -p tcp --dport 14333 -j DNAT --to-destination 10.8.0.10:14333
$ iptables -t nat -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
$ iptables -t nat -L -v
Chain PREROUTING (policy ACCEPT 5252 packets, 328K bytes)
pkts bytes target prot opt in out source destination
1471 85380 DNAT tcp -- any any anywhere anywhere tcp dpt:14333 to:10.8.0.10:64333
Chain INPUT (policy ACCEPT 50 packets, 2156 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 450 packets, 29316 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 1998 packets, 122K bytes)
pkts bytes target prot opt in out source destination
4435 272K MASQUERADE all -- any eth0 10.0.0.0/8 anywhere
공개 인터페이스는 eth0
다음과 같습니다. openvpn은 다음과 같습니다.tun0