Décrit comment transférer (c'est-à-dire la redirection de port) le "nom d'hôte: numéro de port" d'un serveur Web vers "un autre hôte: numéro de port" sous Linux. Pour réaliser cela, utilisez "iptables" qui est fourni en standard avec CentOS et Ubuntu. Le contenu introduit cette fois peut probablement être réalisé avec firewalld etc. qui est inclus par défaut dans CentOS 7 ou version ultérieure, mais à la suite de la recherche d'une méthode de redirection de port qui ne dépend pas autant que possible de l'environnement, j'ai décidé d'utiliser iptables. Il y a quelques articles qui présentent des méthodes de redirection de port avec iptable, mais même si j'ai essayé ces méthodes docilement, cela n'a pas fonctionné, et j'étais assez accro à la réalisation, donc je vais le résumer à nouveau dans cet article. Seul le protocole http (https) a été confirmé pour fonctionner cette fois, mais s'il s'agit d'une communication TCP, il devrait fonctionner avec d'autres protocoles (ssh, ftp, etc.).
23.45.67.89 '' et le port est
80 ''.http: //192.168.1.4: 10080 '' au serveur source de transfert, le port du serveur source de transfert est redirigé vers le serveur Web et dit
http: //23.45.67.89: 80 ''. Demande sur le site.Exécutez la commande suivante sur le serveur source de transfert
--to-destination
: "IP de destination: numéro de port" après la conversion$ sudo iptables -t nat -A PREROUTING -p tcp \
--dport 10080 -j DNAT \
--to-destination 23.45.67.89:80
$ sudo iptables -t nat -A POSTROUTING -p tcp \
-d 23.45.67.89 --dport 80 \
-j MASQUERADE
Une description requise pour permettre le passage des paquets envoyés par le client.
Dans le cas de la communication TCP, la communication bidirectionnelle est effectuée par une méthode appelée 3way-handshake, donc des paramètres sont nécessaires pour permettre les deux communications.
Site de référence: Fireplace made with Linux [Packet filtering settings]
La commande pour permettre au paquet de passer au "Client → serveur Web" est la suivante
$ sudo iptables -A FORWARD -p tcp \
-d 23.45.67.89 --dport 80 \
-j ACCEPT
-s: adresse source" et "" --sport
: numéro de port source. Remarque$ sudo iptables -A FORWARD -p tcp \
! --syn -m state --state ESTABLISHED \
-s 23.45.67.89 --sport 80 \
-j ACCEPT
$ sudo iptables -t nat -A OUTPUT -p tcp \
--dport 10080 -j DNAT \
--to-destination 23.45.67.89:80
Recommended Posts