홈 라우터에 포트 전달 규칙을 추가하는 스크립트가 있습니까?


15

TL; DR : 스크립트 또는 cron 작업을 찾고 있는데, 정기적으로 리눅스 호스트 (라즈베리 파이의 fedora)에서 실행되어 포트 전달 규칙이 라우터에 여전히 있는지 확인하고 그렇지 않은 경우 추가합니다. . 목표는 홈 네트워크 외부의 인터넷에있는 모든 컴퓨터에서 SSH, VNC 및 전송 웹 인터페이스를 통해 항상 라즈베리 파이 리눅스 호스트에 액세스하는 것입니다. 설정은 다음과 같습니다.

라우터 :

Beetel 440Tx1 ADSL2 라우터 + 모뎀 + 와이파이.

설정 :

라우터는 인터넷 (ISP 광대역)에 연결되며 동적 외부 IP가 있습니다. 내부 IP 192.168.xy가 DHCP 역할을하는 내 컴퓨터에 개인 홈 네트워크를 제공합니다.

주최자 :

부팅시 ssh, vnc, 전송 데몬 서버로 항상 실행되는 Fedora Linux가 포함 된 라즈베리 파이 ARM 호스트. 또한 no-ip.com dyndns free DUC (동적 업데이트 클라이언트)가있어 정기적으로 외부 IP를 확인하고 호스트 문자열에 바인딩합니다. 따라서 myrouter.no-ip.org와 같은 dyndns 문자열을 확인하여 라우터의 외부 IP를 항상 찾을 수 있습니다 . pi에는 192.168.1.z와 같은 정적 내부 IP가 있습니다.

포트 포워딩 :

이더넷 케이블 또는 비밀번호로 보호 된 Wi-Fi를 통해 해당 네트워크에 연결된 경우에만 공장 자격 증명으로 GUI / 브라우저를 사용하여 라우터에 로그인해야합니다.

http://192.168.1.1/html/index1.html

외부 IP의 포트 22, 5900, 9091에있는 모든 트래픽을 192.168.1.z의 pi에있는 각 리스너 프로그램 (sshd, vncserver, 전송 데몬)으로 전달하도록 로그인하여 규칙을 설정했습니다.

문제 :

이 라우터는 라우터 (라우터)가 다시 시작되거나 전력이 급증하여 UPS가 잠시 들어와야 할 때에도 위의 포트 전달 규칙을 잃어 버리고 대개 ISP에서 다른 외부 IP를 동적으로 가져옵니다.

요구 사항 :

내 라우터에 로그인하고 해당 포트 전달 규칙이 있는지 정기적으로 폴링하여 누락 된 경우 작성하는 fedora linux pi에서 실행할 수있는 스크립트 또는 크론 작업입니다. 감사합니다.


1
라우터가 UPnP를 통한 포트 포워딩 설정을 지원합니까? (windows / mac / linux에서 실행되는 프로그램은 현재 포트 포워딩 규칙을 자동으로 설정할 수 있습니까?)
Scott Chamberlain

pcwintech.com/showimage?file=files/screenshots/beetel-440txi/… 때문에 wikipedia 페이지 이외의 UPnP에 대해서는 잘 모르고 있습니다. 해당 라우터 유형에 대한 인터넷 검색으로 문제의 페이지로 이동했습니다.
PKM

답변:


18

MiniUPnP 는 포트 전달을 활성화 할 수있는 명령 줄 UPnP 클라이언트입니다. 소스를 사용할 수 있으므로 Pi로 컴파일 할 수 있어야합니다.

이것이 필요한 구문이라고 생각하지만 테스트 할 기계가 없습니다. 당신은 당신을 위해 uPnP 포트를 설정하는 스크립트에 다음을 넣을 것입니다

upnpc -a `ifconfig wlan0 | grep "inet addr" | cut -d : -f 2 | cut -d " " -f 1` 22 22 TCP
upnpc -a `ifconfig wlan0 | grep "inet addr" | cut -d : -f 2 | cut -d " " -f 1` 5900 5900 TCP
upnpc -a `ifconfig wlan0 | grep "inet addr" | cut -d : -f 2 | cut -d " " -f 1` 9091 9091 TCP

작동하지만 명령을 시작할 때 명령을 실행할 수있는 추가 위치는 무엇입니까?
Ciasto piekarz

1
@reboot <cmd>crontab에서 사용할 수 있습니다
Martin

1
miniupnpc는 apt와 함께 raspbian과 함께 사용할 수 있어야합니다
Scott

upnpc는 서비스를 실행하는 머신에서 실행되는 경우 로컬 주소를 사용하므로 ifconfig / grep이 필요하지 않습니다.
Scott

ifconfig ...부분은 저에게 효과가 없으므로이 답변에ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p' 따라 사용 했습니다 .
Helder S Ribeiro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.