DD-WRT: Làm cách nào để cho phép chuyển tiếp cổng áp dụng cho các yêu cầu xuất phát từ bên trong mạng LAN?


26

Với phần sụn gốc của bộ định tuyến của tôi, tôi đã chuyển tiếp cổng được xác định từ cổng 80 đến máy chủ trong mạng LAN, được sử dụng cùng với dịch vụ DNS động bên ngoài.

Bây giờ tôi đã nâng cấp lên DD-WRT và than ôi, cổng chuyển tiếp chỉ hoạt động đối với các yêu cầu tới IP bên ngoài từ bên ngoài mạng LAN. Từ bên trong mạng LAN, tôi chỉ có thể truy cập máy chủ bằng IP bên trong của nó.

Làm cách nào tôi có thể nhận được IP bên ngoài (và do đó tên miền được kết nối với IP bên ngoài động) có thể truy cập chính xác từ bên trong mạng LAN?

Tôi thích tìm hiểu làm thế nào để đạt được nó với các định nghĩa DD-WRT tiêu chuẩn nhưng sử dụng ví dụ iptables không phải là vấn đề.

Câu trả lời:


25

Có vẻ như đó là một lỗi trong các bản dựng DD-WRT gần đây.

Sử dụng iptables:

iptables -t nat -I POSTROUTING -o br0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE

(thay đổi mạng con của bạn theo mạng LAN cụ thể của bạn)

Từ http://hax.at/text/41


Điều đó KHÔNG rõ ràng! làm việc như một bùa mê :)
Jay

Tôi đặt lệnh này làm lệnh khởi động và khởi động lại bộ định tuyến, nhưng không thay đổi - vẫn không hoạt động.
Timwi

Đã làm cho tôi. Cảm ơn nhiều. Bây giờ tôi có thể truy cập các dd được gán IP từ mạng nội bộ của mình trên các bộ định tuyến DD-WRT.
nusi

3
Điều này làm việc cho tôi, nhưng chỉ khi tôi lưu nó dưới dạng tập lệnh tường lửa chứ không phải tập lệnh khởi động.
Jarett Millard

@Timwi - Như Jarett đã đề cập, tôi cũng phải đặt phần này trong phần "Tường lửa", không phải phần "Khởi động".
dan_linder

4

Theo tinh thần câu trả lời của UrEl: Tập lệnh tự cấu hình iptablescó thể được sao chép-dán mà không cần điều chỉnh thêm có thể được tìm thấy trên diễn đàn DD-WRT :

insmod ipt_mark 
insmod xt_mark 
iptables -t mangle -A PREROUTING -i ! `get_wanface` -d `nvram get wan_ipaddr` -j MARK --set-mark 0xd001 
iptables -t mangle -A PREROUTING -j CONNMARK --save-mark 
iptables -t nat -A POSTROUTING -m mark --mark 0xd001 -j MASQUERADE 

Theo ghi nhận của Jarett, điều này phải được sử dụng làm tập lệnh Tường lửa chứ không phải tập lệnh Khởi động.


Giải pháp này hiệu quả với tôi hơn so với giải pháp của UrEI vì giải pháp sau khiến điện thoại SIP của tôi không thể kết nối.
jamix

Sự khác biệt giữa quy tắc này và quy tắc của @ UrlEl (bên cạnh việc tự động nhận giao diện wan và địa chỉ IP) là gì?
Piotr Dobrogost

1

Hãy thử tắt "Bộ lọc chuyển hướng WAN NAT" trong tab Bảo mật-> Tường lửa. Từ mô tả trợ giúp:

Bộ lọc Chuyển hướng WAN NAT Ngăn chặn các máy chủ trên mạng LAN sử dụng địa chỉ WAN của bộ định tuyến để liên lạc với các máy chủ trên mạng LAN (đã được định cấu hình bằng chuyển hướng cổng).


Nó đã bị vô hiệu hóa (theo mặc định). Còn ý tưởng nào khác không?
UrEl

Điều đó thật kỳ lạ - trên mạng LAN của tôi, cài đặt này chính xác là điều tạo nên sự khác biệt. Bạn đang sử dụng bản dựng nào? Có lẽ bạn nên kiểm tra kỹ việc chuyển tiếp cổng của mình - có thể bạn đã bỏ lỡ điều gì đó (có thể các IP đã thay đổi giữa truy cập bên ngoài và bên trong của bạn, do đó phá vỡ chuyển tiếp cổng?)
Tobias Plutat

Tôi đang sử dụng 16994. Trong thời gian đó tôi đã tìm thấy cái này: hax.at/text/41
UrEl

Ôi, làm thế nào tôi yêu các bản phát hành DD-WRT lỗi! (Thiết lập kết nối từ các khách hàng sử dụng để tốn thời gian dài trong một thời gian ... cho đến khi tôi phát hiện ra rằng tên máy chủ trong hợp đồng thuê tĩnh chỉ nên chứa các ký tự chữ cái Arrgh.!)
Tobias Plutat

1

Có vẻ như vấn đề thực sự của bạn là bạn cần hai chế độ xem bản ghi DNS A. Bên ngoài các dns động của bạn trỏ đến IP công cộng mạng của bạn, chuyển tiếp cổng 80 đến máy chủ cục bộ. Tất cả những gì bạn cần làm là thêm một mục trong dnsmasq với một bản ghi A trỏ cùng tên miền đủ điều kiện vào ip máy chủ cục bộ cho máy chủ cục bộ của bạn. Bạn có thể làm điều đó bằng cách thêm vào phần sau trên trang Dịch vụ / Tùy chọn dnsmasq bổ sung:

 address=/www.mydomain.com./xx.xx.xx.xx

chỉ cần thay thế xx bằng ip cục bộ và tên miền bằng tên miền của bạn. Đừng quên dấu chấm hoặc nó sẽ nối tên miền địa phương của bạn vào đó.


Đây là những gì tôi đã làm, và nó hoạt động! Nhưng nó có thể làm điều này cho các cổng nhất định? Điều này sẽ chỉ hoạt động nếu bạn chuyển tiếp cổng tới một máy tính. Nếu bạn chuyển tiếp cổng tới nhiều máy tính, nó sẽ không hoạt động ...
rinogo
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.