Có một kịch bản để thêm quy tắc chuyển tiếp cổng trong bộ định tuyến gia đình?


15

TL; DR : Tôi đang tìm kiếm một tập lệnh hoặc công việc định kỳ, sẽ chạy định kỳ trên máy chủ linux (fedora trên raspberry pi) để kiểm tra xem quy tắc chuyển tiếp cổng có còn tồn tại trong bộ định tuyến không và thêm nó nếu không . Mục đích là luôn có quyền truy cập vào máy chủ raspberry pi linux thông qua SSH, VNC và giao diện web truyền, từ bất kỳ máy nào trên internet bên ngoài mạng gia đình của tôi. Các thiết lập được đưa ra dưới đây:

Bộ định tuyến :

Bộ định tuyến Beetel 440Tx1 ADSL2 + modem + wifi.

Cài đặt :

Bộ định tuyến được kết nối với internet (ISP Broadband) và có IP bên ngoài động. Nó cung cấp một mạng gia đình riêng cho các máy tính của tôi với IP bên trong 192.168.xy cũng hoạt động như một DHCP.

Chủ nhà :

Một máy chủ ARM raspberry pi với Fedora Linux, chạy mọi lúc với các máy chủ ssh, vnc, truyền-daemon bắt đầu khi khởi động. Nó cũng có no-ip.com nhuộm DUC miễn phí (ứng dụng khách cập nhật động) thường xuyên kiểm tra IP bên ngoài và liên kết nó với chuỗi máy chủ. Vì vậy, tôi luôn có thể tìm thấy IP bên ngoài của bộ định tuyến bằng cách giải quyết chuỗi dyndns của mình như myrouter.no-ip.org . Các pi có một IP nội bộ tĩnh như 192.168.1.z.

Giao nhận cảng :

Phải đăng nhập vào bộ định tuyến bằng GUI / trình duyệt với thông tin xác thực của nhà máy chỉ khi được kết nối với mạng đó thông qua cáp ethernet hoặc wi-fi được bảo vệ bằng mật khẩu

http://192.168.1.1/html/index1.html

Tôi thiết lập quy tắc bằng cách đăng nhập để chuyển tiếp bất kỳ lưu lượng truy cập nào tại các cổng 22, 5900, 9091 tại IP bên ngoài tới các chương trình nghe tương ứng (sshd, vncserver, truyền-daemon) trên pi tại 192.168.1.z.

Vấn đề :

Bộ định tuyến này mất quy tắc chuyển tiếp cổng ở trên khi nó (bộ định tuyến) được khởi động lại hoặc ngay cả khi có sự tăng vọt của năng lượng điện và UPS phải bước vào trong giây lát và thường tự động lấy một IP bên ngoài khác từ ISP của tôi.

Yêu cầu :

Một tập lệnh hoặc cron job có thể chạy trên fedora linux pi của tôi có thể đăng nhập vào bộ định tuyến của tôi và thăm dò định kỳ sự tồn tại của quy tắc chuyển tiếp cổng đó và tạo nó nếu nó bị thiếu. Giúp đánh giá cao.


1
Bộ định tuyến có hỗ trợ thiết lập chuyển tiếp cổng qua UPnP không? (hiện tại các chương trình đang chạy trong windows / mac / linux có thể tự động thiết lập quy tắc chuyển tiếp cổng không?)
Scott Chamberlain

Tôi nghĩ vậy bởi vì pcwintech.com/showimage?file=files/screencreen/beetel-440txi/ nam Tôi không thực sự biết nhiều về UPnP ngoài trang wikipedia. Googling cho loại bộ định tuyến (trong câu hỏi) dẫn tôi đến trang đó.
PKM

Câu trả lời:


17

MiniUPnP là một máy khách UPnP dòng lệnh cho phép bạn kích hoạt chuyển tiếp cổng. Nguồn có sẵn để bạn có thể biên dịch nó thành Pi.

Tôi nghĩ rằng đây là cú pháp bạn cần, nhưng tôi không có máy để kiểm tra. Bạn chỉ cần đặt đoạn mã sau vào tập lệnh sẽ thiết lập các cổng uPnP cho bạn

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

Nó hoạt động, tuy nhiên đâu là nơi thích hợp để thêm nó để lệnh chạy khi khởi động?
Ciasto piekarz

1
Bạn có thể sử dụng @reboot <cmd>trong crontab của mình
Martin

1
miniupnpc nên có sẵn với raspbian với apt
Scott

và upnpc, nếu chạy từ máy đang chạy dịch vụ, sẽ sử dụng địa chỉ cục bộ để ifconfig / grep là không cần thiết
Scott

các ifconfig ...phần không làm việc cho tôi vì vậy tôi sử dụng ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'theo câu trả lời này .
Helder S Ribeiro
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.