2017-05-09 4 views
2

Fedora 24에서는 포트 5000에서 웹 서버 (Node.js)가 실행 중입니다 (독립형, Apache/기타 없음). 포트에서 액세스 가능하게하려고합니다. 이localhost (Fedora)의 포트 5000에서 포트 80으로 웹 서버 리디렉션

0,123,516 시도

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

이를 시도 작동

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 

을 시도 : Best practices when running Node.js with port 80 (Ubuntu/Linode)

포트 80 개 작품에서 루트로 노드를 실행합니다. 더 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을 사용하지 않도록해야하지만, 페도라에 당신은 방화벽을 적절하게 설정할 필요가 것입니다. 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

또한 시도 : 방화벽 - cmd - 추가 - 서비스 = http --permanent 방화벽 - cmd를 - 영역 = 외부 - 추가 위장 방화벽 - cmd를 - 존 = 외부 - 추가 - 전달 - 포트 = 포트 = 80 : proto = tcp : toport = 5000 firewall-cmd --reload –

+0

해결책을 찾았습니다. –

관련 문제