나는 한동안 이 문제로 어려움을 겪었고 이 문제를 해결할 수 없는 것 같습니다.
인터넷에 하나의 서버가 있는데 이를 IRE라고 하고 Linux 네트워크 뒤에 두 번째 서버가 있습니다. 이를 PUL이라고 하겠습니다.
xxx.xxx.xxx.118
우리는 PUL이 서버에 위치한 외부 IP를 가지고 있습니다. PUL의 내부 IP는192.168.0.178
IRE에서 PUL의 SQL로 연결하고 싶습니다.
iptables(우분투 서버)에 다음 규칙을 추가했습니다.
iptables -A PREROUTING -t nat -i eth0:1 -p tcp --dport 15433 -j DNAT --to 192.168.0.187:15433 iptables -A INPUT -p tcp -m state --state NEW --dport 15433 -i eth0:1 -j ACCEPT
제거하고 -d xxx.xxx.xxx.118
해결을 위해 추가도 시도했지만 추가하거나 변경한 어떤 것도 IRE가 PUL의 데이터베이스를 볼 수 있도록 허용하지 않았습니다.
IRE 서버가 PUL을 볼 수 있도록 하려면 어떤 조치를 취해야 합니까?
답변1
일반적인 상황은 이렇습니다.
yyy.yyy.yyy.yyy | IRE
Internet
xxx.xxx.xxx.118 | GW (wlan) gateway/modem external ip
192.168.0.1 | GW (eth) gateway/modem internal ip
Internal
192.168.0.178 | PUL
At GW wlan / external, incoming interface (INPUT)
- You need to allow the port
(Maybe even from specific source yyy.yyy.yyy.yyy IP only)
- You need incoming port forwarding (NAT) to 192...178:14533
At GW wlan / external OUTPUT
- You probably already have outgoing non specific port NAT
At PUL you may need another rule to allow port 14533
따라서 PUL 서버가 인터넷 자체의 게이트웨이가 아닌 이상 규칙이 잘못된 위치에 있을 수 있습니다. 나는 그것이 사실이 아니며 귀하의 SQL 서버가 귀하가 말한 것처럼 "뒤에" 있다고 가정합니다.
답변2
모든 의견과 제안에 감사드립니다. 마침내 작동하게 되었습니다. 어떻게 놓쳤는지 모르겠습니다. 모든 규칙을 제거하고 다음 줄만 추가했습니다: iptables -A PREROUTING -t nat -p tcp -d xxx.xxx . xxx.118 - -dport 15433 -j DNAT --to 192.168.0.187이 처음으로 작동했지만 이제는 정렬되어 IRE 서버에서 SQL Server에 액세스할 수 있습니다.
다시 한번 감사드립니다