J'essaie d'acheminer le trafic de la manière suivante :
Internal Network Computer (192.168.1.*) Server (192.168.186:1234) Internal Network Computer (192.168.1.198:80)
-
Le serveur est branché sur le routeur via ethernet sur l'interface en0
-
L'ordinateur interne est connecté au routeur par wifi.
-
Le serveur peut accéder à 192.168.1.198:80 sans problème.
Selon plusieurs autre question connexe j'ai obtenu les règles suivantes
nat on en0 from any to en0 -> (en0)
rdr pass inet proto tcp from any to any port 1234 -> 192.168.1.198 port 80
Cependant, j'obtiens le résultat suivant lorsque telnet
de l'eau :
$ telnet 192.168.1.186 1234
Trying 192.168.1.186...
telnet: connect to address 192.168.1.186: Operation timed out
telnet: Unable to connect to remote host
En utilisant Wireshark sur le 192.168.1.198, j'ai confirmé que la connexion télénet est reçue, mais elle ne semble pas se connecter.
Plus d'informations :
-
rdr
à partir de127.0.0.1
a127.0.0.1
fonctionnent bien, par exemple :rdr pass inet proto tcp from any to any port 1234 -> 127.0.0.1 port 80
-
J'ai confirmé que le port 80 est ouvert sur 192.168.1.198, et qu'il est accessible depuis le serveur.
-
Le pare-feu (dans les préférences système) est désactivé sur les deux ordinateurs.
-
J'ai activé le transfert de trafic entre interfaces avec
sudo sysctl -w net.inet.ip.forwarding=1
-
Je pense qu'il s'agit d'un problème de NAT (voir les messages ci-dessous), mais je n'en suis pas sûr.
La même question est abordée sur le site GitHub . @ctgreybeard, @dandriana, @snimavat et @sergeyzwezdin ont tous signalé le même problème. Quelqu'un a-t-il une solution ?
A noter : J'aimerais utiliser pfctl et non SSH ou un autre service.
Voici d'autres articles sur le sujet :
Comment puis-je configurer mon Mac (OS X Yosemite) comme passerelle internet ?