로컬 서버로 포트 포워딩

도미닉

인터넷을 통해 내 로컬 컴퓨터에서 실행중인 서버에 액세스하고 싶습니다. 라우터에서 포트 포워딩을 설정했습니다.

Public Port Range: 80-80
Target IP Address: 192.168.0.4
Target Port Range: 80-80

http://www.yougetsignal.com/tools/open-ports/ 에서 포트가 열려 있는지 확인했습니다 . 포트 80이 열려 있습니다 ...

포트 3000의 nodeJS 서버와 함께 Apache 서버와 함께 시도했지만 서버에 액세스 할 수 없습니다.

내 컴퓨터가 해당 포트에서 수신하는지 확인했습니다. netstat

netstat -ltn | grep 80

산출:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN

이 문제를 해결하려면 어떤 옵션이 필요합니까? 다른 검사를 실행할 수 있습니까?

도움이된다면 Apache 구성입니다.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName lebensmittel-schulung.local

    DocumentRoot /home/dominic/workspace/lebensmittel-schulung/public
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/dominic/workspace/lebensmittel-schulung/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        Require all granted
    </Directory>


    # Redirect www to non-www
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^(.*)$ http://%1$1 [L,R=301]

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

또한 잘못된 구성을 피하기 위해 라우터를 공장 초기화하고 재부팅했습니다.

이전 iptables :

Chain INPUT (policy ACCEPT 1330K packets, 1422M bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
    0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53
    0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
    0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:67

포트 80을 수동으로 연 후 iptables

Chain INPUT (policy ACCEPT 68 packets, 9825 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
    0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53
    0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
    0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:67

이것은 포트 80을 열어도 아무것도 변경되지 않지만 서버가 실행되는 동일한 컴퓨터에서 내 공용 IP에 요청한 후 tcpdump 출력입니다. 이것은 tcpdump에 의해 캡처되는 나가는 요청이라고 생각합니다.

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
21:46:42.402748 IP 192.168.0.4.34870 > chello080108157035.6.12.vie.surfer.at.http: Flags [S], seq 2878976956, win 29200, options [mss 1460,sackOK,TS val 4294937394 ecr 0,nop,wscale 7], length 0
21:46:42.405078 IP chello080108157035.6.12.vie.surfer.at.http > 192.168.0.4.34870: Flags [R.], seq 0, ack 2878976957, win 0, length 0
21:46:43.473378 IP 192.168.0.4.34871 > chello080108157035.6.12.vie.surfer.at.http: Flags [S], seq 1711479299, win 29200, options [mss 1460,sackOK,TS val 4294937661 ecr 0,nop,wscale 7], length 0
21:46:43.473897 IP 192.168.0.4.34872 > chello080108157035.6.12.vie.surfer.at.http: Flags [S], seq 2157458117, win 29200, options [mss 1460,sackOK,TS val 4294937662 ecr 0,nop,wscale 7], length 0
21:46:43.475335 IP chello080108157035.6.12.vie.surfer.at.http > 192.168.0.4.34871: Flags [R.], seq 0, ack 1711479300, win 0, length 0
21:46:43.476463 IP chello080108157035.6.12.vie.surfer.at.http > 192.168.0.4.34872: Flags [R.], seq 0, ack 2157458118, win 0, length 0
마르신 카민스키

라우터의 포트 전달 구성이 올바르다 고 가정하면 몇 가지 사항을 확인해야합니다.

  • 컴퓨터 192.168.0.4에는 실행중인 웹 서버가 있습니다 (OK).
  • 192.168.0.4:80 또는 0.0.0.0:80(OK)에서 듣고 있습니다.
  • 실행중인 방화벽은 포트 80 / tcp (알 수 없음)에서 들어오는 연결을 허용합니다.

마지막 요점과 관련하여-귀하의 iptables 규칙이 무엇인지 잘 모르겠습니다. 출력을 게시하십시오

sudo iptables -vL INPUT -n

80 / tcp에서 들어오는 연결이 실제로 허용되지만 네트워크 외부에서 웹 서버에 액세스 할 수없는 경우 웹 서버에 로그인하고 tcpdump를 사용하여 들어오는 트래픽을 캡처하여 연결 시도가 있는지 확인할 수 있습니다. 도달합니다.

사용하다:

export ext_if=$(ip ro | awk '/^default via/ {print $5}')
sudo tcpdump -i ${ext_if} port 80

네트워크 외부에서 웹 서버에 연결하려고 할 때 연결이 표시되지 않으면 먼저 문제를 해결해야합니다.

컴퓨터의 방화벽이 들어오는 연결이 포트 80 / tcp에 도달하는 것을 허용하지 않는 경우 아래 명령을 실행하여 문제를 해결하고 확인합니다.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

업데이트 : 당신은 또한 언급 :

이것은 서버가 실행되는 동일한 시스템에서 내 공개 IP에 요청한 후 tcpdump 출력입니다.

이것은 작동하지 않을 것입니다. 요청 경로는 다음과 같습니다.

192.168.0.4 =>
<public_ip> (doing source and destination NAT, aka port forwarding) =>
192.168.0.4

tcpdump 출력에서 ​​볼 수 있듯이 웹 서버에 대한 연결을 여는 데 사용한 도구에 의해 시작된 3 개의 HTTP 요청이 있습니다. 라우터는 RST를 사용하여 패킷으로 응답하여 모든 연결을 거부합니다 ( "reset", 즉 "go away, 연결 닫기 ") 플래그 세트.

내가 아는 한, NAT를 제공하는 많은 장치는 NAT 뒤의 네트워크 내에서 공용 IP 주소로 요청을 시작한 다음 포트 전달 (대상 NAT)을 통해 동일한 NAT 뒤의 호스트로 다시 요청하는 것을 허용하지 않습니다.

네트워크 외부에서 요청을 시도해야합니다. 로그인 할 수있는 외부 호스트가없는 경우 (예 : wget / curl을 사용하여 요청) http://www.infobyip.com/httpservertest 와 같은 여러 웹 기반 도구 중 일부를 사용해보십시오 . PHP

이것이 작동하고 최소한 HTTP 요청 상태 코드 (예 : 200, 302, 404 등)와 일부 응답 헤더 (예 : Server, Content-Type)가 포함 된 결과가 표시되면 다음을 확인합니다.

  • 공용 IP는 외부에서 액세스 할 수 있습니다.
  • 구성된 포트 전달이 작동합니다.
  • 네트워크의 서버는 실제로 요청을 수신하고 이에 응답합니다.

동일한 네트워크 내에서 공용 IP를 사용하여 웹 서버에 액세스 할 수 있도록하려면 다음 중 하나를 수행 할 수 있습니다.

  • / etc / hosts 파일에 적절한 항목을 추가하여 서버의 도메인 이름이 웹 서버의 개인 주소 (임시 해킹)를 가리 키도록합니다.
  • 소위 split-dns 서버를 실행합니다 (선호하지만 자신만을위한 것이라면 가치가 없음).
  • 이러한 연결을 허용하도록 라우터를 재구성하십시오. 이것은 할 수 있지만 홈 라우터가 (당신이 가지고 있다면) 그렇게 할 수 없을 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ISP 차단 포트 포워딩으로 홈 OpenVPN 서버 실행

분류에서Dev

"로컬 포트 포워딩"과 "동적 포트 포워딩"의 차이점은 무엇입니까?

분류에서Dev

로컬 머신에서 포트 포워딩 머신으로 파일 전송

분류에서Dev

포트 포워딩에서 '로컬 포트', '로컬 포트', '원격 포트'및 '원격 포트'는 무엇입니까?

분류에서Dev

포트 포워딩을 사용하여 로컬 서버에 SSH를 사용합니까?

분류에서Dev

Socat에서 포트 포워딩으로 SED?

분류에서Dev

nginx 및 docker-포워딩 포트 80/443에서 3000으로

분류에서Dev

VPN 클라이언트로 포트 포워딩

분류에서Dev

VPN 클라이언트로 포트 포워딩

분류에서Dev

포트 포워딩-Minecraft 서버

분류에서Dev

도커 데몬으로 포트 포워딩

분류에서Dev

VMware Workstation 가상 머신으로 포트 포워딩

분류에서Dev

두 개의 라우터로 포트 포워딩?

분류에서Dev

Vagrant로 포트 포워딩하지 않는 JBoss HTTP 전송

분류에서Dev

여러 컴퓨터로 포트 포워딩

분류에서Dev

도메인 이름으로 포트 포워딩

분류에서Dev

2 개의 라우터로 포트 포워딩

분류에서Dev

SSH 포트 로컬 IRC 서버를 원격 서버로 전달

분류에서Dev

개인용 Ubuntu 컴퓨터의 로컬 호스트에 대한 포트 포워딩은 안전합니까?

분류에서Dev

라우터에서 포트 포워딩을 설정하지 않고 * 인터넷에서 로컬 웹 서버를 표시하는 방법은 무엇입니까?

분류에서Dev

내부 네트워크에서 내부 네트워크 (헤어핀 NAT)로 포트 포워딩

분류에서Dev

ssh 연결을 서버로 포워딩하도록 iptables 구성

분류에서Dev

로컬 또는 원격 포트 포워딩을 사용할지 혼란 스럽습니까?

분류에서Dev

라우터에서 Linux를 실행하는 동적 IP로 포트 포워딩

분류에서Dev

모든 포트에서 Python 로컬 호스트 서버 중지

분류에서Dev

SSH 로컬 포트 전달

분류에서Dev

로컬 서버에 배포 된 Azure Functions 프로젝트

분류에서Dev

SSH 포트 포워딩 서비스

분류에서Dev

Windows에서 포트 포워딩 모기

Related 관련 기사

  1. 1

    ISP 차단 포트 포워딩으로 홈 OpenVPN 서버 실행

  2. 2

    "로컬 포트 포워딩"과 "동적 포트 포워딩"의 차이점은 무엇입니까?

  3. 3

    로컬 머신에서 포트 포워딩 머신으로 파일 전송

  4. 4

    포트 포워딩에서 '로컬 포트', '로컬 포트', '원격 포트'및 '원격 포트'는 무엇입니까?

  5. 5

    포트 포워딩을 사용하여 로컬 서버에 SSH를 사용합니까?

  6. 6

    Socat에서 포트 포워딩으로 SED?

  7. 7

    nginx 및 docker-포워딩 포트 80/443에서 3000으로

  8. 8

    VPN 클라이언트로 포트 포워딩

  9. 9

    VPN 클라이언트로 포트 포워딩

  10. 10

    포트 포워딩-Minecraft 서버

  11. 11

    도커 데몬으로 포트 포워딩

  12. 12

    VMware Workstation 가상 머신으로 포트 포워딩

  13. 13

    두 개의 라우터로 포트 포워딩?

  14. 14

    Vagrant로 포트 포워딩하지 않는 JBoss HTTP 전송

  15. 15

    여러 컴퓨터로 포트 포워딩

  16. 16

    도메인 이름으로 포트 포워딩

  17. 17

    2 개의 라우터로 포트 포워딩

  18. 18

    SSH 포트 로컬 IRC 서버를 원격 서버로 전달

  19. 19

    개인용 Ubuntu 컴퓨터의 로컬 호스트에 대한 포트 포워딩은 안전합니까?

  20. 20

    라우터에서 포트 포워딩을 설정하지 않고 * 인터넷에서 로컬 웹 서버를 표시하는 방법은 무엇입니까?

  21. 21

    내부 네트워크에서 내부 네트워크 (헤어핀 NAT)로 포트 포워딩

  22. 22

    ssh 연결을 서버로 포워딩하도록 iptables 구성

  23. 23

    로컬 또는 원격 포트 포워딩을 사용할지 혼란 스럽습니까?

  24. 24

    라우터에서 Linux를 실행하는 동적 IP로 포트 포워딩

  25. 25

    모든 포트에서 Python 로컬 호스트 서버 중지

  26. 26

    SSH 로컬 포트 전달

  27. 27

    로컬 서버에 배포 된 Azure Functions 프로젝트

  28. 28

    SSH 포트 포워딩 서비스

  29. 29

    Windows에서 포트 포워딩 모기

뜨겁다태그

보관