2017-05-09 32 views
2

Fedora 24では、ポート5000でWebサーバー(Node.js)が実行されています(スタンドアロン、Apache /その他)。ポートこのlocalhost(Fedora)のポート5000からWebサーバーをポート80にリダイレクト

しようとしました

systemctl stop firewalld 
iptables -t nat -F 
iptables -t mangle -F 
iptables -F 
iptables -X 

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 5000 

http://localhost

を動作しません:80

http://localhost:5000

はこれを試し作品 Best practices when running Node.js with port 80 (Ubuntu/Linode)

をポート80本の作品にrootとしてノードの実行:

systemctl restart firewalld 
firewall-cmd --add-service=http --permanent 
firewall-cmd --zone=external --add-masquerade 
firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=5000 
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=5000 
firewall-cmd --list-all 
FedoraWorkstation (active) 
    target: default 
    icmp-block-inversion: no 
    interfaces: wlp3s0 
    sources: 
    services: mdns ssh dhcpv6-client samba-client https http 
    ports: 1025-65535/tcp 1025-65535/udp 
    protocols: 
    masquerade: yes 
    forward-ports: port=80:proto=tcp:toport=5000:toaddr= 
    source-ports: 
    icmp-blocks: 
    rich rules: 

追加情報 はそれだけで動作します他人のためにこれらの

sysctl -w net.ipv4.ip_forward=1 
iptables -A FORWARD -j ACCEPT 
iptables -A FORWARD -j ACCEPT 
iptables -t nat --list 

Chain PREROUTING (policy ACCEPT) 
target  prot opt source    destination   
REDIRECT tcp -- anywhere    anywhere    tcp dpt:http redir ports 5000 
REDIRECT tcp -- anywhere    anywhere    tcp dpt:https redir ports 5000 

Chain INPUT (policy ACCEPT) 
target  prot opt source    destination   

Chain OUTPUT (policy ACCEPT) 
target  prot opt source    destination   

Chain POSTROUTING (policy ACCEPT) 
target  prot opt source    destination   

ifconfig 
enp0s25: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 

ip route 
default via 192.168.1.1 dev wlp3s0 proto static metric 600 
192.168.1.0/24 dev wlp3s0 proto kernel scope link src 192.168.1.4 metric 600 

をしようとしました。何のIPv4はありません、注意してください:

netstat -tpln 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address   Foreign Address   State  PID/Program name  
tcp  0  0 0.0.0.0:111    0.0.0.0:*    LISTEN  1/systemd   
tcp  0  0 0.0.0.0:4433   0.0.0.0:*    LISTEN  3977/deluge-gtk  
tcp  0  0 0.0.0.0:51157   0.0.0.0:*    LISTEN  3977/deluge-gtk  
tcp  0  0 0.0.0.0:5432   0.0.0.0:*    LISTEN  900/postgres   
tcp  0  0 0.0.0.0:17500   0.0.0.0:*    LISTEN  3203/dropbox   
tcp  0  0 127.0.0.1:17600   0.0.0.0:*    LISTEN  3203/dropbox   
tcp  0  0 127.0.0.1:17603   0.0.0.0:*    LISTEN  3203/dropbox   
tcp6  0  0 :::111     :::*     LISTEN  1/systemd   
tcp6  0  0 :::4433     :::*     LISTEN  3977/deluge-gtk  
tcp6  0  0 :::51157    :::*     LISTEN  3977/deluge-gtk  
tcp6  0  0 :::5432     :::*     LISTEN  900/postgres   
tcp6  0  0 :::17500    :::*     LISTEN  3203/dropbox   
tcp6  0  0 :::34017    :::*     LISTEN  10532/code   
tcp6  0  0 :::5858     :::*     LISTEN  30394/node   
tcp6  0  0 :::5000     :::*     LISTEN  30394/node  

答えて

1
firewall-cmd --add-service=http --permanent 
firewall-cmd --add-service=https --permanent 
firewall-cmd --add-masquerade --permanent 
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=5000 --permanent 

#make port forwarding work on localhost 
iptables -t nat -I OUTPUT --source 127.0.0.1 --destination 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to-ports 5000 
0

あなたはこのようなもののためにiptablesの使用を避ける必要がありますが、Fedoraの上でファイアウォールを適切セットアップする必要があると思います。 nodejsを削除するには、編集https://unix.stackexchange.com/questions/39216/cannot-connect-to-fedora-on-port-80

+0

おかげで、:また、この問題は、Node.jsの

firewall-cmd --add-service=http --permanent firewall-cmd --reload 

関連とは何の関係もありません。 #firewall-cmd --add-service = http --permanent FirewallDが実行されていません これを起動してからiptablesを実行しようとしましたが、まだ動作しません。その後、ファイアウォールを再度停止します –

+0

また試みました: firewall-cmd --add-service = http --permanent firewall-cmd --zone = external --add-masquerade firewall-cmd --zone =外部--add-forward-port = port = 80:proto = tcp:toport = 5000 firewall-cmd --reload –

+0

ソリューションを見つけました、ありがとう! –

関連する問題