Я пытаюсь настроить VPS для пересылки трафика от клиента openvpn в Интернет, пересылая входящий трафик порта 80 обратно клиенту. Я следовал этому руководству, чтобы настроить сервер и создать конфигурацию клиента. На VPS у меня есть правила iptables:

-t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE

а также

-t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.8.0.6

Первое правило из руководства, и работает хорошо. Второе правило позволяет мне подключаться к VPN-клиенту через порт 80 из Интернета, но http-запросы от клиента к Интернету не выполняются (https по-прежнему работает и проходит через VPN). Кто-нибудь может порекомендовать рабочую конфигурацию для этой проблемы, или объяснить, почему эта не работает?

Изменить: конфигурация VPS

# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source        destination  

Chain FORWARD (policy ACCEPT)
target     prot opt source        destination  

Chain OUTPUT (policy ACCEPT)
target     prot opt source        destination  

# iptables -L -n -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source        destination  
DNAT       tcp  --  0.0.0.0/0     0.0.0.0/0    tcp dpt:80 to:10.8.0.6

Chain INPUT (policy ACCEPT)
target     prot opt source        destination  

Chain OUTPUT (policy ACCEPT)
target     prot opt source        destination  

Chain POSTROUTING (policy ACCEPT)
target     prot opt source        destination  
MASQUERADE  all  --  10.0.0.0/8    0.0.0.0/0   

# cat /proc/sys/net/ipv4/ip_forward
1

1 ответ1

1

Правило предварительной маршрутизации не указывало интерфейс или назначение, поэтому запросы HTTP, поступающие от VPN-клиента через tun0, отправлялись обратно самому себе.

Рабочий конфиг есть

iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -i eth0 -d $eth0_addr --dport 80 -j DNAT --to 10.8.0.6

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .