
У меня есть сервер Debian (с публичным IP) и Raspberry-PI дома с подключением ADSL. Я запускаю веб-сервер на RP, к которому я хочу иметь доступ извне.
Я настроил PPTP и мой RP подключается к моему серверу. IP RP — 10.0.0.100; IP шлюза — 10.0.0.1.
Я настроил переадресацию портов с помощью таблиц IP на сервере следующим образом: (xx.xx.xx.xx — мой публичный IP-адрес).
iptables -t nat -A PREROUTING -d xx.xx.xx.xx -p tcp --dport 80 -j DNAT --to-dest 10.0.0.100:80
iptables -t nat -A POSTROUTING -d 10.0.0.100 -p tcp --dport 80 -j SNAT --to-source 10.0.0.1
Я также установил net.ipv4.ip_forward = 1
Порт 80 открыт как на сервере, так и на RP.
Но по одной странной причине я не могу подключиться к RP.
Когда я делаю curl с сервера вот так: curl -Ihttp://10.zero.zero.100/Я получил положительный ответ. Так что соединение между сервером и RP работает. Но когда я делаю curl форму снаружи, вот так: curl -Ihttp://xx.xx.xx.xx/Я получил curl: (7) Не удалось подключиться к xx.xx.xx.xx порт 80: Соединение отклонено
Что я делаю не так?
Таблица маршрутизации на RP выглядит так:
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
и ifconfig RP показывает это:
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.0.0.100 P-t-P:10.0.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1496 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:678 (678.0 B) TX bytes:7058 (6.8 KiB)