Điểm:0

Kết nối ổ cắm PHP thông qua bộ định tuyến XR300 với máy in hóa đơn

lá cờ cn

Tôi có một ứng dụng PHP đang cố mở kết nối ổ cắm tới máy in thông qua bộ định tuyến của mình.

Một số điều cần lưu ý - kỹ năng kết nối mạng của tôi còn thiếu nên tôi có thể thiếu điều gì đó rõ ràng hoặc điều này thậm chí có thể không thực hiện được theo cách tôi muốn. Điều đó đang được nói, tôi đã thực hiện rất nhiều tìm kiếm về vấn đề này và dường như không thể tìm thấy bất kỳ ai có vấn đề chính xác này (chỉ có rất nhiều người cố gắng SSH từ xa). Tôi cũng biết rằng thiết bị mà tôi đang cố gắng kết nối đang hoạt động như dự kiến ​​vì tôi có một ứng dụng nodejs nhỏ đã mở thành công kết nối với thiết bị đó trên mạng cục bộ. Và cuối cùng, tôi đang sử dụng Docker để chạy ứng dụng PHP cục bộ, ứng dụng này có thể liên quan đến sự cố của tôi (mặc dù tôi biết kết nối đang đến bộ định tuyến do nhật ký).

Mã này rất đơn giản:

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socket, SOL_TCP, SO_DEBUG, 1);

$server_connect = socket_connect($socket, "router_public_ip", 9100);

Trong bộ định tuyến của mình, tôi thiết lập cổng đó để được chuyển tiếp: nhập mô tả hình ảnh ở đây

Khi tôi cố gắng kết nối PHP ném socket_connect(): không thể kết nối [111]: Kết nối bị từ chối và nhật ký bộ định tuyến cho thấy kết nối không thành công.

Tôi nhận thấy trong nhật ký bộ định tuyến rằng cổng bắt đầu là ngẫu nhiên và đã thử thay đổi cấu hình chuyển tiếp cổng của mình thành: nhập mô tả hình ảnh ở đây

Điều này mang lại cho tôi kết quả tương tự và bộ định tuyến của tôi không cung cấp cho tôi nhiều thông tin để tiếp tục (về lý do tại sao kết nối không thành công, nó có bị chặn không?). Đây là tất cả những gì được hiển thị trong nhật ký:

nhập mô tả hình ảnh ở đây

Chỉnh sửa: Trình đơn tiện ích cấu hình máy in dường như không đề cập bất cứ điều gì về tường lửa hoặc kết nối từ xa. nhập mô tả hình ảnh ở đây

Gerard H. Pille avatar
lá cờ in
Bạn đang cố kết nối với 192.168.1.150:9100? Bạn nên sử dụng địa chỉ IP của bộ định tuyến.
EvilZebra avatar
lá cờ cn
@GerardH.Pille - không, tôi đang cố kết nối với địa chỉ IP công cộng của bộ định tuyến.Tôi tin rằng bộ định tuyến sẽ tự động hướng tôi đến địa chỉ cục bộ đó do cổng chuyển tiếp có địa chỉ IP nội bộ được đặt?
Gerard H. Pille avatar
lá cờ in
VÂNG. Cổng bắt đầu là ngẫu nhiên (ephemere IIRC) là cách nó hoạt động. Bây giờ, máy in có đang nghe trên 9100 và chấp nhận các kết nối bên ngoài không? "Cổng bắt đầu" phải là 9100 bên ngoài và bên trong.
EvilZebra avatar
lá cờ cn
Máy in đang lắng nghe (như tôi đã đề cập trong bài đăng của mình, tôi có thể kết nối và in thành công với thiết bị bằng cách sử dụng tập lệnh nodejs cục bộ) và tôi không nghĩ rằng nó phân biệt giữa các kết nối bên trong/bên ngoài.
Gerard H. Pille avatar
lá cờ in
Bạn có thể chắc chắn không? Hiện tại tôi không thấy nó có thể là gì khác. Tôi sẽ kiểm tra mã PHP của bạn.
EvilZebra avatar
lá cờ cn
Tôi chắc chắn 100%. Mã PHP ban đầu của tôi gửi chi tiết tới nodejs, nodejs kết nối với máy in cục bộ thông qua ổ cắm và in chi tiết. Mã PHP mới đang cố kết nối trực tiếp với ổ cắm (và từ xa). Nếu tôi sử dụng mã cũ - máy in hoạt động, hãy sử dụng mã mới - lỗi.
EvilZebra avatar
lá cờ cn
Hãy để chúng tôi [tiếp tục cuộc thảo luận này trong cuộc trò chuyện](https://chat.stackexchange.com/rooms/133066/discussion-between-evilzebra-and-gerard-h-pille).
Gerard H. Pille avatar
lá cờ in
Điều đó không chứng tỏ máy in chấp nhận các kết nối bên ngoài. PHP bạn hiển thị là OK, tôi có thể kết nối với máy in của mình bằng địa chỉ bên ngoài, nhưng máy in của tôi không có bất kỳ cài đặt "tường lửa" nào. HP direct đang hoạt động (nghe trên cổng 9100) hay không.
EvilZebra avatar
lá cờ cn
@GerardH.Pille - theo cuộc thảo luận của chúng ta trong cuộc trò chuyện, tôi đã thử nghiệm những ý tưởng mới nhất của bạn và hóa ra đó là Cổng mặc định! Theo tìm kiếm của Google, thiết bị phải được đặt cổng mặc định để có thể giao tiếp từ xa. Vì vậy, tôi đặt nó thành `192.168.1.1` và tất cả đều ổn. Vui lòng đưa ra câu trả lời cho câu hỏi này để tôi có thể chấp nhận nó và giúp bạn nhận được nghiệp chướng.
Điểm:1
lá cờ in

Sau đó, tôi thắc mắc về cổng 0.0.0.0 trong cấu hình mạng của máy in.

Điều đó có nghĩa là máy in của bạn có thể kết nối trực tiếp với bất kỳ địa chỉ IP nào. Trong các trường hợp bình thường, một hệ thống sẽ chỉ có thể giao tiếp trực tiếp với các hệ thống khác trong mạng con của nó (xem mặt nạ). Để tiếp cận rộng hơn, nó sẽ cần phải đi qua một cổng.

Đă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.