Hãy thử thêm quy tắc này:
iptables -A FORWARD --in-interface br -j CHẤP NHẬN
và cuối cùng thay thế
sudo iptables -t nat -A POSTROUTING -o wan1 -j MASQUERADE
qua
sudo iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o wan1 -j MASQUERADE
Có thể sử dụng Wireshark (hoặc tshark, tcpdump) để chẩn đoán đồng thời trên cả hai giao diện.
phân tích mở rộng
Có thể có nhiều lý do khiến bộ định tuyến của bạn không hoạt động:
- Chuyển tiếp IP không được bật
- Máy chủ DNS không thể truy cập được đối với máy chủ LAN
- Cài đặt NAT (dịch địa chỉ mạng) không hoạt động đối với máy chủ LAN
- ...
Khởi động lại PC của bạn để đưa tất cả các dịch vụ về trạng thái bình thường.
Không sử dụng tên trừ địa chỉ IP số để kiểm tra ping cho đến khi bạn xác minh rằng tất cả các kiểm tra khác được liệt kê bên dưới đều ổn. Bạn loại bỏ sự cố DNS đồng thời có thể xảy ra bằng cách này.
kiểm tra 1
Kiểm tra trạng thái định tuyến IP (chuyển tiếp) (kết quả 1 có nghĩa là chuyển tiếp được bật):
mèo /proc/sys/net/ipv4/ip_forward
kiểm tra 2
Kiểm tra cài đặt NAT (giả trang) chính xác cho giao diện mạng LAN của bạn:
ping -c 3 8.8.8.8
ping -c 3 -I 192.168.3.1 8.8.8.8
Lệnh đầu tiên ở trên là kiểm tra khả năng truy cập của địa chỉ IP đích. Bạn phải nhận được 3 phản hồi ping hợp lệ. Lệnh thứ hai kiểm tra xem NAT có hoạt động với các địa chỉ IP LAN của bạn hay không. Nếu bạn không nhận được phản hồi, điều đó có nghĩa là masquerade không thể dịch địa chỉ nguồn của bạn 192.168.3.1. và các địa chỉ khác của bạn trong mạng LAN (192.168.3.0/24) cũng gặp vấn đề tương tự. Xác minh phần NAT của bạn trong cài đặt iptables thật cẩn thận. Tiếp tục thực hiện các kiểm tra tiếp theo nếu cài đặt NAT có vẻ ổn, nhưng bạn không nhận được phản hồi ping.
Nếu phản hồi ping OK nhưng các nút mạng khác trong mạng LAN vẫn không thể ping tới 8.8.8.8, thì giải pháp khả thi là chỉ định địa chỉ mạng đầy đủ (không chỉ riêng anh
địa chỉ giao diện 192.168.3.1) làm nguồn cho NAT:
sudo iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o wan1 -j MASQUERADE
kiểm tra 3
Các gói WAN gửi đi và địa chỉ IP của chúng:
xác minh tcpdump
được cài đặt và cài đặt nó, nếu nó không có.
tcpdump nào
sudo apt-get cài đặt tcpdump
Quy trình được mô tả sẽ hướng dẫn bạn kiểm tra chức năng tcpdump và thu thập dữ liệu mạng. Bạn có thể dừng quá trình chụp bằng cách nhấn Ctrl + C trong cửa sổ phiên bản tcpdump đang chạy. Mở cửa sổ đầu cuối thứ hai (T2). Đầu tiên (T1) sẽ được sử dụng để tạo lưu lượng truy cập và kiểm tra phản hồi. Bạn sẽ sử dụng thiết bị đầu cuối thứ hai (T2) để bắt đầu và dừng các tác vụ chụp bằng tcpdump. Có thể chỉ sử dụng một thiết bị đầu cuối cho cả hai tác vụ, nhưng nếu bạn không quen với việc chuyển đổi tác vụ nền trước và nền sau, thì sử dụng hai thiết bị đầu cuối sẽ an toàn hơn.
T2
sudo tcpdump -i wan1 -n icmp và máy chủ 8.8.8.8
T1
ping -c 2 8.8.8.8
Bạn sẽ thấy hai gói gửi đi ICMP (yêu cầu tiếng vang) và hai phản hồi tiếng vang đến. Xem địa chỉ IP nguồn và đích của họ. Gói gửi đi có IP đích 8.8.8.8 và nguồn là địa chỉ IP WAN công khai của bạn. Bạn sẽ so sánh chúng với các địa chỉ được hiển thị trong bước tiếp theo.
Nhấn phím Enter trong thiết bị đầu cuối T2 để tạo không gian dòng mới ở đầu ra của hoạt động tcpdump
. Nó giúp bạn tách dữ liệu đã chụp cũ và mới trong cửa sổ.
T1
ping -c 2 -I 192.198.3.1 8.8.8.8
Bạn thấy gì? Có những khả năng sau:
- không có gói tin nào bị bắt
- chỉ các gói gửi đi được hiển thị và chúng có địa chỉ IP nguồn sai (ví dụ: 192.168.3.1 thay vì địa chỉ IP công cộng của giao diện WAN.)
- cả các gói đi và đến đều có thể nhìn thấy.
phá vỡ tcpdump
trong cửa sổ T2 (Ctrl+C).
Vui lòng sao chép phản hồi từ T2 và dán vào câu trả lời của bạn tại đây. Thêm câu trả lời của lộ trình ip
và cuối cùng là các lệnh này:
ip gần
Sudo iptables-save
Mô tả kết quả của các thử nghiệm khác.