Điểm:1

Kết nối với nhiều camera, mỗi camera hoạt động như một Điểm truy cập WiFi

lá cờ id

Tôi có 7 camera, mỗi camera đóng vai trò là Điểm truy cập WiFi và tôi không thể thay đổi cấu hình của chúng.

Camera1 SSID: camera1, pass: 1234, IP tĩnh: 192.168.42.1 và máy chủ DHCP tích hợp
Camera2 SSID: camera2, pass: 1234, IP tĩnh: 192.168.42.1 và máy chủ DHCP tích hợp
..
Camera7 SSID: camera7, pass: 1234, IP tĩnh: 192.168.42.1 và máy chủ DHCP tích hợp

Từ máy tính xách tay windows của tôi, bằng cách sử dụng bộ điều hợp WiFi bên trong, tôi có thể kết nối với ssid của camera1 và nhận video. Sau đó, tôi cần ngắt kết nối khỏi nó, kết nối với ssid của camera2 để lấy video từ camera2 và tương tự với 3,4..7.

Những gì tôi muốn là lấy video đồng thời từ tất cả chúng.

Những gì tôi đã thử: Tôi đã thử cắm 7 bộ điều hợp WiFi USB vào máy tính xách tay của mình. Và mỗi bộ điều hợp được cấu hình để kết nối các camera khác nhau. Trong trường hợp này, cửa sổ hiển thị 7 giao diện ethernet khác nhau và mỗi giao diện nhận IP từ máy chủ dhcp của máy ảnh tương ứng. Nhưng tất cả các camera đều sử dụng cùng một IP là 192.168.42.1. Ngoài ra, như tôi đã biết, nhiều bộ điều hợp USB WiFi được Windows hỗ trợ chứ không phải MACOS.

Tôi cần một loại giải pháp phổ quát cho vấn đề này, cho đến nay tôi không thể tìm ra cách giải quyết. Trợ giúp và đề xuất của bạn được đánh giá cao.

Cảm ơn.

Các xét nghiệm khác: Tôi tin rằng tôi gần với một giải pháp. Nhưng vẫn cần sự giúp đỡ. Tôi đã lấy một chiếc Raspberry Pi 4 chạy Ubuntu trên đó. Tôi dự định sử dụng nó như một bộ định tuyến. Theo mặc định, phần cứng PI đi kèm với 2 giao diện ethernet;

  1. eth0 -> Kết nối cáp 1Gbit
  2. wlan0 -> Giao diện WiFi nhúng

Tôi đã cắm thêm hai khóa USB WiFi và bây giờ nó có thêm hai giao diện ethernet có tên wlxb8b7f16a0602wlxb8b7f16a04cd. Mỗi khóa USB WiFi được kết nối với một máy ảnh khác nhau. Đây là ifconfig đầu ra:

pi@pi:~$ ifconfig -a
eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
        ether dc:a6:32:48:55:70 txqueuelen 1000 (Ethernet)
        Gói RX 0 byte 0 (0,0 B)
        Lỗi RX 0 bị rớt 0 tràn 0 khung hình 0
        Gói TX 0 byte 0 (0,0 B)
        Lỗi TX 0 bị rớt 0 tràn 0 sóng mang 0 va chạm 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 192.168.0.205 netmask 255.255.255.0 phát sóng 192.168.0.255
        inet6 fe80::2c43:aa7a:a4c8:47eb tiền tốlen 64 phạm vi 0x20<link>
        inet6 2a02:aa14:c480:6c80:9deb:968e:785d:159c tiền tốlen 64 phạm vi 0x0<toàn cầu>
        inet6 2a02:aa14:c480:6c80:10b7:8a65:dce6:1f5c tiền tốlen 64 phạm vi 0x0<toàn cầu>
        ether dc:a6:32:48:55:71 txqueuelen 1000 (Ethernet)
        Gói RX 10535 byte 2218695 (2,2 MB)
        Lỗi RX 0 bị rớt 0 tràn 0 khung hình 0
        Gói TX 44536 byte 63167704 (63,1 MB)
        Lỗi TX 0 bị rớt 0 tràn 0 sóng mang 0 va chạm 0

wlxb8b7f16a0602: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 192.168.42.24 netmask 255.255.255.0 phát sóng 192.168.42.255
        inet6 fe80::6523:f6cd:520b:ee0 tiền tốlen 64 phạm vi 0x20<link>
        ether b8:b7:f1:6a:06:02 txqueuelen 1000 (Ethernet)
        Gói RX 9 byte 1495 (1,4 KB)
        Lỗi RX 0 bị rớt 0 tràn 0 khung hình 0
        Gói TX 47 byte 9334 (9,3 KB)
        Lỗi TX 0 bị rớt 0 tràn 0 sóng mang 0 va chạm 0

wlxb8b7f16a04cd: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 192.168.42.170 netmask 255.255.255.0 phát sóng 192.168.42.255
        inet6 fe80::ad02:2e2e:cc11:c309 tiền tốlen 64 phạm vi 0x20<link>
        ether b8:b7:f1:6a:04:cd txqueuelen 1000 (Ethernet)
        Gói RX 60 byte 6531 (6,5 KB)
        Lỗi RX 0 bị rớt 0 tràn 0 khung hình 0
        Gói TX 130 byte 19353 (19,3 KB)
        Lỗi TX 0 bị rớt 0 tràn 0 sóng mang 0 va chạm 0

Trong cấu hình này;

  • eth0 -> không kết nối
  • wlan0 -> đã kết nối với modem internet của tôi (chỉ được sử dụng cho ssh to pi)
  • wlxb8b7f16a0602 -> đã kết nối với Camera1
  • wlxb8b7f16a04cd -> đã kết nối với Camera2

Mặc dù mỗi camera có cùng một IP là 192.168.42.1, vì chúng được kết nối với các giao diện khác nhau, tôi có thể ping chúng thành công bằng cách sử dụng -TÔI tham số như dưới đây:

Đối với Máy ảnh1:

pi@pi:~$ ping -I wlxb8b7f16a0602 192.168.42.1
PING 192.168.42.1 (192.168.42.1) từ 192.168.42.24 wlxb8b7f16a0602: 56(84) byte dữ liệu.
64 byte từ 192.168.42.1: icmp_seq=2 ttl=64 time=3,77 ms

Đối với Máy ảnh2:

pi@pi:~$ ping -I wlxb8b7f16a04cd 192.168.42.1
PING 192.168.42.1 (192.168.42.1) từ 192.168.42.170 wlxb8b7f16a04cd: 56(84) byte dữ liệu.
64 byte từ 192.168.42.1: icmp_seq=2 ttl=64 time=2,03 ms

Từ đây, giả sử tôi chỉ định một IP tĩnh cho giao diện eth0 của mình là 192.168.42.250

Tôi muốn chuyển tiếp các yêu cầu đến từ

  • 192.168.42.250:443 tại eth0 đến 192.168.42.1:443 tại wlxb8b7f16a0602
  • 192.168.42.250:444 tại eth0 đến 192.168.42.1:443 tại wlxb8b7f16a04cd

Nếu bạn giúp tôi cho điểm còn lại này, tôi chấp nhận câu trả lời của bạn.

Gửi @A.B:

pi@pi:~$ iw phy phy0 |grep netns
        phy <phyname> set netns { <pid> | tên <nsname> }
                    <nsname> - thay đổi không gian tên mạng theo tên từ /run/netns
                               hoặc bằng đường dẫn tuyệt đối (man ip-netns)


pi@pi:~$ ll /sys/class/ieee80211
tổng số 0
drwxr-xr-x 2 root root 0 Mai 27 17:13 ./
drwxr-xr-x 78 gốc gốc 0 ngày 1 tháng 1 năm 1970 ../
lrwxrwxrwx 1 root root 0 27 tháng 6 20:18 phy0 -> ../../devices/platform/soc/fe300000.mmcnr/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/ieee80211/phy0/
lrwxrwxrwx 1 root root 0 Mai 27 17:13 phy1 -> ../../devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1 /1-1.2/1-1.2:1.0/ieee80211/phy1/
lrwxrwxrwx 1 root root 0 Mai 27 17:13 phy2 -> ../../devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1 /1-1.3/1-1.3:1.0/ieee80211/phy2/
Michael Hampton avatar
lá cờ cz
Bạn đã cân nhắc trả lại rác này và mua một giải pháp camera hợp lý hơn chưa?
Mehmet Fide avatar
lá cờ id
@MichaelHampton Thật không may, điều này là không thể. Có loại bộ định tuyến nào có thể kết nối đồng thời với nhiều điểm truy cập wifi khác nhau và kết hợp chúng trong một mạng không? Về mặt lý thuyết Nó nên có thể.
Ron Trunk avatar
lá cờ in
@MehmetFide Không thể nếu tất cả các thiết bị của bạn có cùng một địa chỉ. Hãy tưởng tượng nếu tất cả bạn bè/gia đình của bạn có cùng một số điện thoại.
A.B avatar
lá cờ cl
A.B
@RonTrunk Tôi muốn nói rằng có thể (có thể không có trên Windows) với định tuyến chính sách (với giao diện là bộ chọn chứ không phải địa chỉ IP), sau đó là một ví dụ trên Linux với các vùng conntrack để phân tách các luồng tìm kiếm giống hệt nhau trong NAT tiếp theo, hoặc với không gian tên mạng + NAT. Nhưng điều đó sẽ rất khó thực hiện
Ron Trunk avatar
lá cờ in
@ A.B Tôi cho rằng người ta có thể nghĩ ra một số phần cứng/phần mềm tùy chỉnh làm bất cứ điều gì bạn muốn, nhưng điều đó không thực tế. Tôi tưởng tượng rằng nếu Mehmet có khả năng đó, anh ấy đã không đặt câu hỏi.
Mehmet Fide avatar
lá cờ id
Ví dụ: bất kỳ giải pháp nào sử dụng mâm xôi 4 làm bộ định tuyến hoạt động trên Linux và gắn 7 USB WiFi dongle trên đó sẽ được đánh giá cao. Nó chắc chắn sẽ được tôi chấp nhận. Với cấu hình, tôi sẽ có một cổng Ethernet 1Gbit bằng cáp (có thể đi đến windows hoặc macos) và 7 bộ điều hợp WiFi, mỗi bộ được kết nối với một máy ảnh khác nhau. Nhưng điều gì sẽ là cài đặt mạng thích hợp cho điều đó?
Mehmet Fide avatar
lá cờ id
@ A.B. Tôi sử dụng thuật ngữ "máy ảnh" vì tôi thấy việc giải thích vấn đề của mình với nó dễ dàng hơn. Trên thực tế, chúng là công cụ đo lường đặc biệt truyền dữ liệu đo lường thời gian thực qua cổng 443.Xin lỗi vì điều đó :) Nhưng thực tế là như nhau, chúng không thể định cấu hình được, nhà sản xuất không nghĩ rằng ai đó sẽ đến và cố gắng kết nối nhiều đầu dò từ một PC hoặc MAC.
A.B avatar
lá cờ cl
A.B
Sử dụng không dây thực sự không giúp ích gì vì thiết lập không dây phức tạp hơn ethernet. Đặc biệt là khi xem xét sử dụng không gian tên mạng. Bạn có thể sử dụng thành công các địa chỉ IP tĩnh thay vì DHCP để kết nối với "máy ảnh" không? Hoặc bạn có thể định cấu hình wpa_supplicant theo cách thủ công không? Bạn có thể cung cấp cấu hình wpa_supplicant kết quả cho hai thiết bị của mình không? Hiện tại có một quy trình wpa_supplicant đang chạy hay hai quy trình (một quy trình trên mỗi thiết bị) không?
A.B avatar
lá cờ cl
A.B
Câu trả lời của `iw phy phy0 |grep netns` cũng bao gồm `* set_wiphy_netns` và có hai mục trong /sys/class/ieee80211/ không?
A.B avatar
lá cờ cl
A.B
Chà, tôi đã tò mò và nghiên cứu phương pháp không sử dụng không gian tên mạng. không gian tên mạng nên được ưu tiên và mang lại kết quả mạnh mẽ hơn, nhưng tôi không thấy cách đưa ra câu trả lời với không gian tên mà không phải hỏi loại câu hỏi tôi đã hỏi ở trên và hơn thế nữa.
Điểm:3
lá cờ cl
A.B

Bài thuyết trình

Vấn đề này có thể được giải quyết bằng cách sử dụng các không gian tên mạng, do đó chia hệ thống Pi đơn lẻ thành các bộ định tuyến X thực hiện NAT. Đó là điều nên làm. Than ôi, tôi không biết cách viết câu trả lời không chỉ bao gồm cách di chuyển giao diện Wifi sang không gian tên mạng mới (yêu cầu trình điều khiển tương thích và iw phy phyX set netns ... thay vì đặt liên kết ip wlanX ... netns ...) nhưng cũng đặc biệt liên kết của họ wpa_supplicant và trình nền máy khách DHCP với các tinh chỉnh tích hợp hệ thống tương ứng. Điều này đòi hỏi kiến ​​thức tốt về cách cấu hình hệ thống cụ thể với mạng không dây và DHCP.

Thay vào đó, câu trả lời này tránh sử dụng các không gian tên mạng và tránh phải cấu hình lại việc xử lý wpa_supplicant và máy khách DHCP: nó sử dụng định tuyến chính sách.

Liên quan đến các dấu trong định tuyến chính sách là không thể tránh khỏi trong trường hợp này khi ngăn xếp định tuyến sẽ chỉ nhìn thấy cổng đích 443 thay vì 4431/4432 (DNAT đã thay đổi nó trước đó). Marks cũng sẽ được người dùng đặt vùng conntrack (reply) để đảm bảo xử lý trường hợp nhiều camera gán cùng một địa chỉ IP cho giao diện máy chủ phù hợp của chúng.

Chuyển tiếp đường dẫn ngược nghiêm ngặt (SRPF) sẽ phải là thoải mái đến RPF lỏng lẻo trong trường hợp Nghiêm ngặt được đặt theo mặc định, vì việc xử lý ARP sẽ không nhận được điểm và có thể bị chặn.

Vì các camera có thể không đặt tuyến mặc định cho máy khách mà có thể chỉ có tuyến LAN, nên NAT kép (nguồn và đích) cũng sẽ được thực hiện.

Cài đặt

Vì OP không cung cấp bất kỳ eth0 cài đặt, không có ở đây. Câu trả lời cố gắng không phụ thuộc quá nhiều vào điều này, nhưng OP sẽ phải điều chỉnh nó nếu cần (đặc biệt nếu 7 giao diện không dây sẽ không có tên bắt đầu bằng wlx).

Hãy điều chỉnh mục tiêu:

192.168.42.0/24 đại diện cho nhiều mạng IP chồng chéo không được tiếp cận trực tiếp để bảo vệ các máy khách bên ngoài khỏi mọi phức tạp định tuyến có thể xảy ra.

Vì vậy, địa chỉ 192.168.42.250 sẽ không được sử dụng. Địa chỉ hiển thị của Pi 192.168.0.205 sẽ được sử dụng từ các máy khách từ xa.

Mọi truy cập HTTPS sẽ nhận được chứng chỉ không hợp lệ. Giải quyết vấn đề: Tôi đang cung cấp câu trả lời dựa trên việc điều chỉnh cài đặt mạng, nhưng nó sẽ không bao gồm việc thiết lập proxy ngược để ẩn vấn đề về chứng chỉ. Việc thêm proxy ngược như vậy cũng yêu cầu nhiều chỉnh sửa mạng hơn (được thêm vào dưới dạng tùy chọn ở cuối). Các thử nghiệm có thể được thực hiện từ máy khách (chứ không phải RPi) với:

cuộn tròn --không an toàn https://192.168.0.205:4431/
cuộn tròn --không an toàn https://192.168.0.205:4432/

Ngoài ra, để hiển thị một số ví dụ bên dưới, tôi lấy trường hợp cả hai camera đã gán cùng một địa chỉ IP cho máy chủ để nó xuất hiện trên hai giao diện, để nâng cao tiêu chuẩn. Nó không quan trọng. Hầu hết các cài đặt này phải được thực hiện sau khi tất cả các kết nối không dây được thực hiện thay vì trước đó. Tôi sẽ không bàn về cách tích hợp điều này với hệ điều hành Linux cụ thể đang xử lý nó.

Tất cả các lệnh nên được chạy với quyền root.

Các ví dụ dựa trên:

# lộ trình ip
mặc định qua 192.168.0.1 dev wlan0 
192.168.0.0/24 dev wlan0 liên kết phạm vi kernel proto src 192.168.0.205 
192.168.42.0/24 dev wlxb8b7f16a0602 liên kết phạm vi hạt nhân proto src 192.168.42.10 số liệu 600 
192.168.42.0/24 dev wlxb8b7f16a04cd liên kết phạm vi hạt nhân proto src 192.168.42.10 số liệu 600 

Các quy tắc định tuyến để chọn các bảng định tuyến bổ sung sẽ cách ly từng mạng LAN của camera khỏi mạng LAN của camera khác:

quy tắc ip thêm fwmark 1 tra cứu 4431
quy tắc ip thêm tra cứu fwmark 2 4432

tuyến ip thêm 192.168.42.0/24 dev wlxb8b7f16a0602 bảng 4431
tuyến ip thêm 192.168.42.0/24 dev wlxb8b7f16a04cd bảng 4432

Điều này làm cho việc định tuyến hoạt động từ máy khách đến máy ảnh (nếu RPi không có tuyến mặc định, các ví dụ bên dưới sử dụng 192.0.2.2 để kiểm tra các tuyến có thể sử dụng 192.168.0.101 thay thế):

# ip route lấy dấu 2 từ 192.0.2.2 iif wlan0 192.168.42.1
192.168.42.1 từ 192.0.2.2 dev wlxb8b7f16a04cd bảng 4432 đánh dấu 2 
    bộ đệm iif wlan0 

nhưng vẫn không trả lời nếu SRPF được bật:

# tuyến ip nhận điểm 2 từ 192.168.42.1 iif wlxb8b7f16a04cd 192.0.2.2
RTNETLINK trả lời: Liên kết thiết bị chéo không hợp lệ

Vì vậy, một cờ gần như không có giấy tờ sẽ phải được đặt trên giao diện máy ảnh:

sysctl -w net.ipv4.conf.wlxb8b7f16a0602.src_valid_mark=1
sysctl -w net.ipv4.conf.wlxb8b7f16a04cd.src_valid_mark=1

để có được ngay bây giờ:

# tuyến ip nhận điểm 2 từ 192.168.42.1 iif wlxb8b7f16a04cd 192.0.2.2
192.0.2.2 từ 192.168.42.1 qua 192.168.0.1 dev wlan0 mark 2 
    bộ đệm iif wlxb8b7f16a04cd 

Nhưng trên thực tế, dù sao ARP (từ camera đến máy chủ) vẫn bị gián đoạn khi SRPF được đặt vì ARP không nhận được dấu iptables.

Vì vậy, chỉ cần sử dụng Loose RPF (rp_filter=2) thay vào đó (và sau đó là cài đặt cho src_valid_mark ở trên không còn cần thiết nữa) để giải quyết nó. Điều này hoạt động cho dù RPF đã bị vô hiệu hóa hay được đặt nghiêm ngặt trước đó:

sysctl -w net.ipv4.conf.wlxb8b7f16a0602.rp_filter=2
sysctl -w net.ipv4.conf.wlxb8b7f16a04cd.rp_filter=2

Thêm các dấu thiết lập quy tắc iptables để hoàn thành phần định tuyến cũng như xử lý các địa chỉ xung đột trong NAT sau này bằng cách đặt bộ chọn vùng trả lời.

iptables -t raw -A PREROUTING ! -i wlx+ -p tcp --dport 4431 -j MARK --set-mark 1
iptables -t raw -A PREROUTING -i wlxb8b7f16a0602 -j MARK --set-mark 1
iptables -t raw -A PREROUTING -m mark --mark 1 -j CT --zone-reply 1

iptables -t raw -A PREROUTING ! -i wlx+ -p tcp --dport 4432 -j MARK --set-mark 2
iptables -t raw -A PREROUTING -i wlxb8b7f16a04cd -j MARK --set-mark 2
iptables -t raw -A PREROUTING -m mark --mark 2 -j CT --zone-reply 2

Thêm các quy tắc đó vào NAT vào IP và cổng đích (luôn giống nhau). Giao diện chính xác sau đó sẽ được chọn bởi ngăn xếp định tuyến nhờ các cài đặt trước đó:

iptables -t nat -A PREROUTING ! -i wlx+ -p tcp -m dấu ! --mark 0 -j DNAT --to-destination 192.168.42.1:443
iptables -t nat -A POSTROUTING -o wlx+ -j MASQUERADE

Nếu thêm giao diện thứ 3 có tên wlx3, đây là các bước. Nó có thể được khái quát hóa theo cùng một cách cho nhiều hơn:

Thêm quy tắc ip mới được chọn bằng dấu mới (3) sẽ sử dụng bảng định tuyến mới (4433):

quy tắc ip thêm tra cứu fwmark 3 4433

Thêm bảng định tuyến mới phù hợp với mục nhập của nó ít nhiều trùng lặp với tuyến đường LAN của bảng chính cho giao diện mới:

tuyến ip thêm 192.168.42.0/24 dev wlx3 bảng 4433

Nới lỏng RPF trên giao diện này nếu mặc định của hệ điều hành là SRPF (như đã nói src_valid_mark cuối cùng không cần thiết):

sysctl -w net.ipv4.conf.wlx3.rp_filter=2

Chọn một cổng mới (4433) và thêm 3 raw/PREROUTING mới iptables các quy tắc bao gồm cổng mới, nhãn hiệu mới và giao diện mới:

iptables -t raw -A PREROUTING ! -i wlx+ -p tcp --dport 4433 -j MARK --set-mark 3
iptables -t raw -A PREROUTING -i wlx3 -j MARK --set-mark 3
iptables -t raw -A PREROUTING -m mark --mark 3 -j CT --zone-reply 3

(Nếu tên giao diện mới không bắt đầu bằng wlx thêm mới tự nhiên quy tắc tương ứng.)

Đây là một ví dụ về theo dõi xử lý khi máy khách kết nối hai lần, thậm chí sử dụng cùng một cổng nguồn, với hai cổng trong khi RPi có cùng một địa chỉ IP được gán cho hai giao diện không dây wlx. Các theo dõi zone được bao gồm trong lựa chọn luồng và cho phép NAT được xử lý chính xác ngay cả khi một bên của luồng nhìn thấy chính xác các địa chỉ và cổng giống nhau:

# conntrack -E
    [MỚI] tcp 6 120 SYN_SENT src=192.168.0.101 dst=192.168.0.205 sport=6666 dport=4431 [UNREPLIED] src=192.168.42.1 dst=192.168.42.10 sport=443 dport=6666 zone-reply=1
 [CẬP NHẬT] tcp 6 60 SYN_RECV src=192.168.0.101 dst=192.168.0.205 sport=6666 dport=4431 src=192.168.42.1 dst=192.168.42.10 sport=443 dport=6666 zone-reply=1
 [CẬP NHẬT] tcp 6 432000 ĐÃ THÀNH LẬP src=192.168.0.101 dst=192.168.0.205 sport=6666 dport=4431 src=192.168.42.1 dst=192.168.42.10 sport=443 dport=6666 zone-reply=1 [ĐẢM BẢO]
    [MỚI] tcp 6 120 SYN_SENT src=192.168.0.101 dst=192.168.0.205 sport=6666 dport=4432 [UNREPLIED] src=192.168.42.1 dst=192.168.42.10 sport=443 dport=6666 zone-reply=2
 [CẬP NHẬT] tcp 6 60 SYN_RECV src=192.168.0.101 dst=192.168.0.205 sport=6666 dport=4432 src=192.168.42.1 dst=192.168.42.10 sport=443 dport=6666 zone-reply=2
 [CẬP NHẬT] tcp 6 432000 ĐÃ THÀNH LẬP src=192.168.0.101 dst=192.168.0.205 sport=6666 dport=4432 src=192.168.42.1 dst=192.168.42.10 sport=443 dport=6666 zone-reply=2 [ĐẢM BẢO]

Điều khoản khác

  • linh tinh 1

    Để máy ảnh có thể ping máy chủ hoặc nhận lỗi ICMP từ máy chủ, phải thêm cài đặt (toàn cầu) này:

    sysctl -w net.ipv4.fwmark_reflect=1
    

    mặt khác, câu trả lời ICMP không tuân theo định tuyến chính sách. Một cách khác tốt hơn là sử dụng CONNMARK/đánh dấu, nhưng nó sẽ làm cho câu trả lời phức tạp hơn một cách không cần thiết.

  • linh tinh 2

    Kết quả làm việc không thể được kiểm tra chính xác từ chính RPi mà chỉ từ một máy khách trên mạng LAN (hoặc trên Internet với sự hỗ trợ từ bộ định tuyến của RPi). Cài đặt dành riêng cho trường hợp định tuyến.

    Tùy chọn để máy chủ có thể hoạt động (và cho phép đặt proxy ngược), có thể thêm các cài đặt bổ sung này:

    Chọn đúng giao diện ngay cả trước khi NAT xảy ra (yêu cầu kernel >= 4.17), nếu không socket sẽ chọn sai địa chỉ nguồn (của một giao diện khác) sau:

    quy tắc ip thêm iif lo ipproto tcp dport 4431 tra cứu 4431
    quy tắc ip thêm iif lo ipproto tcp dport 4432 tra cứu 4432
    

    Điểm đến phải được DNATed trong nat/OUTPUT. Không cần tên wlx chính xác ở đây, tuyến đi chính xác đã được chọn bởi ngăn xếp định tuyến với quy tắc định tuyến mới (trả lời vẫn yêu cầu một phần của quy tắc iptables raw/PREROUTING từ câu trả lời chính). Và một theo dõi vùng trả lời cũng cần thiết trong raw/OUTPUT để xử lý các trường hợp xung đột hiếm gặp.

    iptables -t raw -A OUTPUT -o wlx+ -p tcp --dport 4431 -j MARK --set-mark 1
    iptables -t raw -A OUTPUT -m mark --mark 1 -j CT --zone-reply 1
    
    iptables -t raw -A OUTPUT -o wlx+ -p tcp --dport 4432 -j MARK --set-mark 2
    iptables -t raw -A OUTPUT -m mark --mark 2 -j CT --zone-reply 2
    
    iptables -t nat -A OUTPUT -p tcp -m đánh dấu ! --mark 0 -j DNAT --to-destination :443
    

    Các thử nghiệm trong trường hợp này nên được thực hiện từ RPi với:

    cuộn tròn --không an toàn https://192.168.42.1:4431/
    cuộn tròn --không an toàn https://192.168.42.1:4432/
    
  • linh tinh 3

    Các cài đặt trong linh tinh 2 nếu được điều chỉnh để xử lý UDP cục bộ, đối với trường hợp khác với OP, có thể sẽ không đủ đối với một số trường hợp góc: UDP luôn cần hỗ trợ từ ứng dụng cục bộ khi ở trong môi trường nhiều nhà.

Điểm:1
lá cờ id

Tôi không thể tìm ra cách để làm điều đó với iptables nhưng tôi đã giải quyết vấn đề bằng cách sử dụng socat làm việc tốt cho tôi:

Sudo socat TCP-LISTEN:443,giao diện=eth0,FORK TCP:192.168.42.1:443,giao diện=wlxb8b7f16a0602
Sudo socat TCP-LISTEN:444,giao diện=eth0,FORK TCP:192.168.42.1:443,giao diện=wlxb8b7f16a04cd

Tất cả các yêu cầu đến cổng 443 tại eth0 giao diện sẽ được chuyển hướng đến 192.168.42.1:443 tại wlxb8b7f16a0602 giao diện.

Và tương tự, các yêu cầu đến cổng 444 tại eth0 giao diện sẽ được chuyển hướng đến 192.168.42.1:443 tại wlxb8b7f16a04cd giao diện.

A.B avatar
lá cờ cl
A.B
Có vẻ đơn giản hơn với một công cụ có thể liên kết với một giao diện.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.