여러 하위 도메인으로 구성된 시스템을 만들고 싶습니다. 저는 DNS를 사용하여 각 하위 도메인을 IP 주소로 설정합니다.
이 질문에서는 임의의 IP 주소를 사용했습니다.
165.93.198.34 x.mydomain.com (실제로는 165.93.198.220:8080)
165.93.198.38 z.mydomain.com (실제로는 165.93.198.220:81)
165.93.198.44 c.mydomain.com (실제 165.93.198.220:443)
165.93.198.220 mydomain.com
iptables를 사용하면 요청이 IP 주소로 165.93.198.34
오면 165.93.198.220:8080
.
iptables -t nat -A PREROUTING -p tcp -d 165.93.198.34 --jump DNAT --to-destination 165.93.198.220:8080
하지만 사전 라우팅을 할 수 없습니다.
[root@static ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ftp
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:down
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:webcache
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:81
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@static ~]# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere 165.93.198.34-iprovider.com to:165.93.198.220:8080
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
내가 뭘 잘못했나요?
답변1
대상 IP(165.93.198.220)가 네트워크의 다른 시스템인 경우
다음과 같이 체인에 ACCEPT
규칙을 추가합니다.FORWARD
iptables -A FORWARD -p tcp -d 165.93.198.220 --dport 8080 -j ACCEPT
또한 IP 전달이 활성화되어 있는지 확인하십시오.
sysctl net.ipv4.ip_forward
로 설정되지 않은 경우 다음 1
을 사용하여 동적으로 활성화합니다.
sysctl -w net.ipv4.ip_forward=1
또는
echo 1 > /proc/sys/net/ipv4/ip_forward
재부팅 후에도 지속되도록 하려면 /etc/sysctl.conf
다음 줄을 편집하고 추가합니다.
net.ipv4.ip_forward = 1
대상 IP(165.93.198.220)가 로컬 컴퓨터에 있는 경우
다음과 같이 체인에 ACCEPT
규칙을 추가합니다.INPUT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT