집에 ADSL 연결이 가능한 Debian 서버(공용 IP 포함)와 Raspberry-PI가 있습니다. 저는 외부에서 액세스할 수 있는 RP에서 웹 서버를 실행하고 있습니다.
PPTP를 설정했고 내 RP가 내 서버에 연결되어 있습니다. RP의 IP는 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에 연결할 수 없습니다.
다음과 같이 서버에서 컬링하면: 컬 -Ihttp://10.zero.zero.100/나는 긍정적인 반응을 얻었다. 그래서 서버와 RP간의 연결은 정상입니다. 하지만 밖에서 컬을 할 때는 다음과 같이 하세요: 컬 -Ihttp://xx.xx.xx.xx/컬이 생겼습니다: (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
RP의 ifconfig는 다음을 보여줍니다.
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)