Liên kết là một hình ảnh của một kết xuất Wireshark của khung Ethernet 60 byte đến có chứa gói UDP. Tải trọng gói là một từ duy nhất 'xin chào' (xin lỗi, tôi không có đủ đại diện để dán hình ảnh trực tiếp).
Vấn đề: Tôi không thể nhận được socat
hoặc nc
để đọc và hiển thị gói này (điều này không hoàn toàn đúng; xem #1 bên dưới).
Tôi chạy người đọc như:
$ socat UDP:192.168.50.129:5000 -
Tôi đã thử nhiều định dạng địa chỉ liên quan đến UDP khác nhau cũng như định dạng này. Nhà văn được chạy như:
$ socat READLINE UDP:192.168.50.132:5000
Câu hỏi: làm cách nào để hiển thị gói tin đến này, tốt nhất là dưới dạng một từxin chào
?
Thật không may, có một số biến chứng:
#1
Nếu tôi chạy trình đọc như # socat GIAO DIỆN:ens4f0 -
sau đó tôi làm hiển thị khung hình đến (vì lý do nào đó nó được hiển thị hai lần). Có một số đầu ra nhị phân và sau đó là từ xin chào
. Tuy nhiên, tôi không thể làm điều này, vì cuối cùng sẽ có các quy trình khác sử dụng giao diện này, vì vậy tôi cần hiểu điều gì đang xảy ra
#2
Khung đến thực sự có địa chỉ IP dst là 192.168.50.132
; tường lửa được thiết lập để chuyển đổi cái này thành 192.168.50.129
, là địa chỉ người đọc đang nghe trên:
# iptables -t nat -A PREROUTING -i ens4f0 -j DNAT --to 192.168.50.129
Đầu ra Wireshark hiển thị gói đến trước khi chuyển đổi này, do đó, hiển thị địa chỉ IP dst dưới dạng 192.168.50.132
. Tôi thực sự không biết liệu điều này có hiệu quả hay không - tôi có thể lấy socat
để tạo ra một kết xuất hex của những gì nó thực sự nhìn thấy trên ens4f0
?
#3
Đây là một trong những khó khăn, nhưng tôi hy vọng rằng nó không liên quan. Đây thực sự là một thử nghiệm lặp lại: một khung hình duy nhất bị tắt ens4f0
, được lặp lại bởi phần cứng bên ngoài và được trả về không sửa đổi thành ens4f0
. NIC có địa chỉ IP 192.168.50.129
. tôi có một ip gần add
lệnh định tuyến truy cập đến 192.168.50.132
ra khỏi ens4f0
đến phần cứng bên ngoài; gói được trả về không sửa đổi, đó là lý do tại sao tôi cần iptables
lệnh để chuyển đổi địa chỉ IP dst trở lại ens4f0
Địa chỉ.