Tôi đang cố định tuyến tất cả lưu lượng truy cập của mình thông qua đường hầm SSH/proxy SOCKS5. Tôi có một số quy tắc bảng IP được định cấu hình để chuyển hướng (gần như) tất cả lưu lượng truy cập sang chương trình dựa trên ổ cắm, sau đó thương lượng và chuyển hướng lưu lượng truy cập đến proxy SOCKS5. Điều tôi nhận thấy là không phải tất cả lưu lượng truy cập của tôi đều được định tuyến lại đúng cách và tôi nghi ngờ đó là iptables
các quy tắc không hoạt động. Có ai sẵn sàng cho tôi mượn một đôi mắt thứ hai không?
Ví dụ, tôi có thể chạy nc 8.8.8.8 80 2>&1
và tôi thấy trong chương trình dựa trên ổ cắm của mình rằng quá trình chuyển hướng đang diễn ra. Nhưng khi tôi cuộn tròn google.com
, tôi gặp lỗi về độ phân giải: curl: (6) Không thể giải quyết máy chủ: google.com
. Không có nhật ký nào trong chương trình dựa trên ổ cắm của tôi cho thấy rằng bất kỳ chuyển hướng nào đã được thực hiện.
Tôi có chương trình dựa trên ổ cắm đang nghe tại 0.0.0.0:9900
và proxy SOCKS5 được bắt đầu trên cổng 9901 chẳng hạn. Tôi đang chạy tất cả những thứ này trong bộ chứa Docker, trong trường hợp có vấn đề (nhưng tôi không nghĩ nó quan trọng lắm ...).
Tôi khởi tạo proxy SOCKS5 như sau:
#!/usr/bin/env bash
ssh -D 127.0.0.1:9901 -N [email protected]
Sau đây là iptables
quy tắc tôi đang sử dụng:
#!/usr/bin/env bash
# Tạo chuỗi mới trong bảng NAT.
iptables -t nat --new-chain TÙY CHỈNH
# Tạo quy tắc để riêng các gói định mệnh localhost.
iptables -t nat --append TÙY CHỈNH --destination 127.0.0.0/8 --jump RETURN
# Tạo quy tắc rời khỏi đường hầm mà chúng tôi sẽ tạo một mình.
#192.168.0.25 là IP tĩnh của máy chạy máy chủ SOCKS5.
iptables -t nat --append TÙY CHỈNH --destination 192.168.0.25 --protocol tcp --destination-port 22 --jump RETURN
# Tạo quy tắc để chuyển hướng tất cả lưu lượng TCP khác thông qua đường hầm SSH.
iptables -t nat --append TÙY CHỈNH --protocol tcp --jump LOG --log-level info --log-prefix='[iptables] '
iptables -t nat --append TÙY CHỈNH --protocol tcp --jump REDIRECT --to-ports 9900
# Liên kết chuỗi OUTPUT và PREROUTING của bảng NAT với chuỗi tùy chỉnh do người dùng xác định của chúng tôi.
iptables -t nat -I OUTPUT 1 --jump TÙY CHỈNH
iptables -t nat -I PREROUTING 1 --jump TÙY CHỈNH
Và đây là đầu ra đầy đủ của iptables -t nat -L -v
:
PREROUTING chuỗi (chính sách CHẤP NHẬN 165 gói, 21537 byte)
pkts byte đích prot chọn không tham gia đích nguồn
165 21537 TÙY CHỈNH tất cả -- mọi nơi mọi nơi mọi nơi
5129 389K DOCKER tất cả -- bất kỳ ở bất kỳ đâu ở bất kỳ đâu ADDRTYPE khớp với loại dst ĐỊA PHƯƠNG
6987 1026K delegate_prerouting tất cả -- bất kỳ ở bất kỳ đâu ở bất kỳ đâu
Chuỗi INPUT (chính sách CHẤP NHẬN 114 gói, 8854 byte)
pkts byte đích prot chọn không tham gia đích nguồn
ĐẦU RA chuỗi (chính sách CHẤP NHẬN 40 gói, 2369 byte)
pkts byte đích prot chọn không tham gia đích nguồn
40 2369 TÙY CHỈNH tất cả -- bất kỳ bất kỳ nơi nào bất kỳ nơi nào
0 0 DOCKER tất cả -- bất kỳ ở bất kỳ đâu !127.0.0.0/8 ADDRTYPE khớp dst-type LOCAL
Chuỗi POSTROUTING (chính sách CHẤP NHẬN 39 gói, 2301 byte)
pkts byte đích prot chọn không tham gia đích nguồn
72 9027 MASQUERADE tất cả -- mọi !docker0 172.17.0.0/16 mọi nơi
1614 99565 delegate_postrouting tất cả -- mọi nơi mọi nơi
Chuỗi DOCKER (2 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
0 0 RETURN all -- docker0 mọi nơi mọi nơi
Chuỗi TÙY CHỈNH (2 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
39 2301 TRẢ LẠI tất cả -- bất kỳ ở bất kỳ đâu 127.0.0.0/8
0 0 RETURN tcp -- bất kỳ ở đâu 192.168.0.25 tcp dpt:ssh
0 0 LOG tcp -- bất kỳ nơi nào bất kỳ nơi nào tiền tố thông tin mức LOG "[iptables]"
0 0 REDIRECT tcp -- bất kỳ nơi nào bất kỳ nơi nào chuyển hướng cổng 9900
Chuỗi MINIUPNPD (2 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi delegate_postrouting (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
1614 99565 postrouting_rule all -- mọi nơi mọi nơi /* chuỗi người dùng để định tuyến sau */
0 0 zone_lan_postrouting tất cả -- mọi br-lan mọi nơi mọi nơi
0 0 zone_wifi_postrouting all -- mọi br-wifi mọi nơi mọi nơi
55 5757 zone_wan_postrouting tất cả -- mọi eth0 ở mọi nơi mọi nơi
Chuỗi delegate_prerouting (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
6987 1026K prerouting_rule all -- mọi nơi mọi nơi /* chuỗi người dùng để định tuyến trước */
4545 342K zone_lan_prerouting tất cả -- br-lan mọi nơi mọi nơi
1 32 zone_wifi_prerouting all -- br-wifi mọi nơi mọi nơi
2441 684K zone_wan_prerouting tất cả -- eth0 mọi nơi mọi nơi
Chuỗi postrouting_lan_rule (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi postrouting_rule (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi postrouting_wan_rule (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi postrouting_wifi_rule (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi prerouting_lan_rule (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi prerouting_rule (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi prerouting_wan_rule (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi prerouting_wifi_rule (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi zone_lan_postrouting (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
0 0 postrouting_lan_rule all -- bất cứ nơi nào bất cứ nơi nào /* chuỗi người dùng để định tuyến sau */
Chuỗi zone_lan_prerouting (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
4545 342K prerouting_lan_rule all -- mọi nơi mọi nơi /* chuỗi người dùng để định tuyến trước */
Chuỗi zone_wan_postrouting (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
55 5757 postrouting_wan_rule all -- bất cứ nơi nào bất cứ nơi nào /* chuỗi người dùng để định tuyến sau */
55 5757 MASQUERADE all -- bất kỳ bất kỳ nơi nào bất kỳ nơi nào
Chuỗi zone_wan_prerouting (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
2441 684K MINIUPNPD tất cả -- mọi nơi mọi nơi
2441 684K MINIUPNPD tất cả -- mọi nơi mọi nơi
2441 684K prerouting_wan_rule all -- bất kỳ bất kỳ nơi nào bất kỳ /* chuỗi người dùng để định tuyến trước */
Chuỗi zone_wifi_postrouting (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
0 0 postrouting_wifi_rule all -- bất kỳ nơi nào bất kỳ nơi nào /* chuỗi người dùng để định tuyến sau */
Chuỗi zone_wifi_prerouting (1 tài liệu tham khảo)
pkts byte đích prot chọn không tham gia đích nguồn
1 32 prerouting_wifi_rule all -- mọi nơi mọi nơi /* chuỗi người dùng để định tuyến trước */
Hãy cho tôi biết nếu có bất kỳ thông tin nào khác mà tôi nên đưa vào và cảm ơn trước!