Điểm:1

Socat - có thể không?

lá cờ us

Có cách nào để nghe và thực hiện lệnh (cho mọi kết nối) trong khi chuyển tiếp cổng bằng socat không? Một ví dụ không hoạt động để làm cho nó rõ ràng hơn:

socat TCP-LISTEN:8080,reuseaddr, "exec:ls" fork tcp:localhost:80

Điểm:0
lá cờ cl
A.B

Như thế này?

socat tcp-listen:8080,reuseaddr,fork system:'ls; exec socat - tcp\:localhost\:80'
  • tham số thứ nhất được ,cái nĩasocat tiếp tục lắng nghe để có thêm kết nối

  • hệ thống: được ưa thích hơn người điều hành: để có trình thông dịch shell và dễ dàng chạy lệnh bổ sung sau ls chỉ huy,

  • đó là một cái mới socat chỉ huy

    sẽ có thiết bị xuất chuẩn/thiết bị xuất chuẩn được kết nối với đầu ra/đầu vào của máy khách từ xa và sẽ chuyển tiếp nó hai chiều một lần nữa đến đích tiếp theo. Lưu ý rằng nó : dấu phân cách (và một vài ký tự đặc biệt khác) phải được thoát bằng một \ để không nhầm lẫn đầu tiên socat chỉ huy. Nếu dòng này trở nên phức tạp hơn, việc thực thi một tập lệnh như thế này sẽ trở nên dễ dàng hơn:

    socat tcp-listen:8080,reuseaddr,fork exec:/path/to/myscript.sh
    

    với /path/to/myscript.sh:

    #!/bin/sh
    ls
    exec socat - tcp:localhost:80
    

    giám đốc điều hành trong lệnh shell là tùy chọn nhưng tránh để xung quanh shell một cách vô ích.

socat cũng xuất một vài biến của riêng nó có thể được sử dụng lại trong tập lệnh, ví dụ như bạn có thể kiểm tra như thế này (với một kết nối được tạo):

$ env - socat TCP-LISTEN:8080,reuseaddr,fork exec:printenv
SOCAT_PID=1057351
SOCAT_PPID=1057284
SOCAT_VERSION=1.7.4.1
SOCAT_SOCKADDR=127.0.0.1
SOCAT_SOCKPORT=8080
SOCAT_PEERADDR=127.0.0.1
SOCAT_PEERPORT=42970
hyogy avatar
lá cờ us
Thật đáng kinh ngạc! Cảm ơn! (: Vui lòng chỉ thêm một mẹo nữa: sử dụng dòng đó, bạn sẽ giải mã chuỗi trong base64 như thế nào? Ý tôi là: dữ liệu đi qua cổng 8080 được mã hóa base64, nhưng tôi muốn giải mã nó trước khi dữ liệu đến cổng 80 ( dữ liệu quay lại từ cổng 80 không được mã hóa)
A.B avatar
lá cờ cl
A.B
Ngay khi bạn sử dụng một đường ống ở đâu đó (ví dụ: `base64 -d | socat ... `), giao tiếp sẽ không hoàn toàn hai chiều. Sau đó, điều này có thể yêu cầu chuyển đổi một số lệnh trong tập lệnh để hai nửa hướng hoạt động. Bạn nên trình bày (có thể trong một câu hỏi khác) toàn bộ vấn đề của mình. Kiểm tra https://xyproblem.info/ . Bạn nghĩ rằng bạn có thể giải quyết nó với Y = socat, nhưng chúng tôi không biết gì về X. Ngay cả khi socat có thể giải quyết nó, tôi không thể nói được vì tôi không biết vấn đề của bạn.
hyogy avatar
lá cờ us
Cảm ơn vì sự giúp đỡ của bạn!! Tôi sẽ đưa ra một câu hỏi mới và tôi sẽ thông báo cho bạn nếu bạn muốn!(;
A.B avatar
lá cờ cl
A.B
thực sự đối với trường hợp cụ thể này, điều đó thật dễ dàng, ngoại trừ bạn gặp vấn đề với thời gian: không có cách nào để biết khi nào đầu vào kết thúc nên giao tiếp phải kết thúc trước và có thể sẽ không có phản hồi được gửi lại đúng lúc. đây là dòng để đưa vào myscript.sh : `exec base64 -d | socat - tcp:localhost:80`. `-` có nghĩa là STDIO và trong khi đầu vào đến từ `base64 -d` thì đầu ra được gửi lại mà không bị ảnh hưởng, như được viết trong nhận xét.
hyogy avatar
lá cờ us
Tôi đã đăng câu hỏi tương đối nếu bạn quan tâm (: https://serverfault.com/questions/1070792/bidirection-communication-unidirection-decode
A.B avatar
lá cờ cl
A.B
Bạn vừa viết lại một vấn đề XY, trong khi tôi đã đưa ra câu trả lời trong các bình luận. Nhận xét của tôi nói rằng cuối cùng nó đã hoạt động hai chiều. Xin lỗi nếu đó không phải là những gì tôi đã viết trong bình luận trước đây.
hyogy avatar
lá cờ us
Tôi đã có giải pháp hoàn hảo, hãy kiểm tra câu hỏi nếu bạn muố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.