Làm cách nào tôi có thể sử dụng máy khách telnet dòng lệnh để mở kết nối thô - như PuTTY?


8

Tôi cần sử dụng telnet để nói chuyện với một máy chủ socket không phải là máy chủ Telnet tiêu chuẩn. Tôi không muốn bất kỳ cuộc đàm phán hay can thiệp nào của Telnet vào dữ liệu.

Điều này có sẵn dưới dạng 'chế độ thô' trong PuTTy và tôi cần chức năng tương tự trong Linux.



Tôi đã thêm rằng tôi cần một máy khách telnet dòng lệnh (vì vậy Putty trên Linux không hoạt động với tôi).
Eden

Tôi đang kết nối với một sản phẩm MOXA là máy chủ TCP để kết nối từ xa với cổng nối tiếp (của một sản phẩm cũ). Nó cần phải còn nguyên để tất cả các tổ hợp phím sẽ được gửi như hiện tại.
Eden

Về cơ bản tôi cần chức năng 'giống như telnet' nhưng không có giao thức. Tôi cũng đã thử netcat (được đề xuất ở trên) nhưng nó không hoạt động tốt - nó ở chế độ chỉnh sửa dòng và tổ hợp phím như ^ C không được thông qua.
Eden

Như một con trỏ khác, hãy nhìn vào socat, nó có nhiều tính năng hơn netcat; có lẽ bạn có thể sử dụng nó.
sr_

Câu trả lời:


11

Sử dụng netcat, nó cung cấp ổ cắm thô dòng lệnh, một tiện ích rất tiện dụng, tôi thường sử dụng nó để di chuyển dữ liệu giữa các máy chủ khi không yêu cầu mã hóa, ví dụ:

Máy chủ 1

# nc -l -p 1234 | zcat | mysql -u root databaseName

Máy chủ2

# mysqldump -u root databaseName | gzip | nc Server1 1234

Đây là một mẹo tuyệt vời! Tuy nhiên, khi tôi thử nó giữa hai cửa sổ đầu cuối trên MacOS, dòng đầu tiên bị lỗi. Trang người đàn ông của tôi cho nc nói rằng đó là lỗi khi sử dụng -p với -l. Nó hoạt động như một nhà vô địch khi tôi bỏ qua -p
RufusVS

5

Có nguy cơ bị mất tiếng, tại sao không sử dụng PuTTY? Nếu bạn đã thích chức năng mà nó mang lại cho bạn, chỉ cần chạy nó. PuTTY có sẵn cho Linux hoặc Windows

Như đã chỉ ra trong các bình luận, telnet không thô - nó hy vọng các giao thức nhất định sẽ được tuân theo.


1
+1 Rory. Telnet không thô. Sử dụng 'thiết lập tùy chọn' trên telnet> dấu nhắc và bạn sẽ thấy các giao thức hoạt động.
Stephen Quan

Chế độ "RAW" của Putty không thực sự là RAW. Khi bạn nhấn Enter, nó sẽ gửi CR / LF.
eddyq

2

Bạn có thể sử dụng telnet để kết nối với bất kỳ cổng nào miễn là có một cái gì đó nghe cổng đó và nó không bị chặn bởi tường lửa.

telnet alt1.aspmx.l.google.com 25
telnet google.com 80

Tất cả sẽ hoạt động tốt. Tuy nhiên, bạn phải biết giao thức nào được sử dụng bởi đầu kia của kết nối nếu không, nó là loại vô nghĩa.

Lưu ý rằng telnet gửi các gói không được mã hóa.


5
Coi chừng: telnet có vẻ "thô", nhưng không phải vậy. Đã có một số cấp độ giao thức liên quan ngay cả khi bị giới hạn. Bạn đang cố gắng đạt được điều gì ở đây?
Ouki

@Ouki, giao thức TELNET khá phức tạp, chắc chắn. Chương trình của telnet thường sẽ trở lại chế độ hoạt động thô nếu không kết nối với máy chủ TELNET.
vonbrand

0

Rất cũ, nhưng tôi thấy cái này hoạt động cho một đơn vị MOXA:

stty raw && nc <ip> 23 && stty sane

0

Vẫn có liên quan sau tất cả những năm này.

Điều này hoạt động tốt trong ~/.bash_aliases, mở ra một moxavỏ trong một tab mà không có tiếng vang cục bộ: (tham số là số cổng moxa)

function moxat(){
  mate-terminal --tab --title="moxa1 $1" -e "bash -c 'stty raw -echo && \ 
  nc <ip> $1 && stty sane'" 
}

-1

Sử dụng dòng chính xác này:

sudo socat tcp-l:2023,reuseaddr,fork exec:/bin/login,pty,setsid,setpgid,stderr,ctty

Điều đó sẽ cho phép bạn kết nối với một ổ cắm thô từ Moxa và nhận được một dấu nhắc dòng lệnh trên máy chủ. Từ đó bạn có thể dễ dàng Telnet hoặc SSH đến bất kỳ hệ thống nào.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.