Tải xuống và tải lên các tập tin thông qua phiên telnet


15

Tôi có một thiết bị tham dự đang chạy Linux OS. Tôi có thể kết nối thiết bị này thông qua phiên telnet. Có một số tệp trong thiết bị mà tôi muốn tải xuống và tải lên với các tệp mới. Làm thế nào tôi có thể làm điều đó? Tôi có kiến ​​thức rất thấp về hệ điều hành Linux. Xin vui lòng giúp đỡ!

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


Bạn muốn chuyển bao nhiêu tập tin? Bạn có thể dán ra một nơi nào đó busybox --helpls -l /binls -l /usr/bin, xin vui lòng.
jofel

thực sự tôi muốn thay đổi hình nền máy tính của thiết bị tham dự này và muốn tải lên logo công ty của chúng tôi ở đó trong thiết bị. Các tùy chọn như vậy không có sẵn trong menu thiết bị (Tôi đã yêu cầu tùy chọn này cho nhà cung cấp). Vì vậy, tôi đã kết nối nó qua phiên telnet và tìm thấy desktop.jpg và các tệp hình ảnh khác trong thiết bị. Bây giờ tôi muốn lấy các tệp này trên hệ thống cục bộ của tôi. và sau khi xác minh tương tự, tôi sẽ tải lên hình ảnh mong muốn của mình trong thiết bị. Vì vậy, nó sẽ cập nhật hình ảnh thiết bị theo hình ảnh mong muốn của tôi. Tôi muốn thay đổi ít nhất hình ảnh máy tính để bàn có sẵn trong thiết bị tại / mnt / mtdblock / hình ảnh
PRdeep Kumawat

Nếu bạn muốn thêm thông tin vào lần tiếp theo, vui lòng chỉnh sửa câu hỏi của bạn thay vì thêm nhận xét.
jofel

Câu trả lời:


12

Điều này phụ thuộc vào công cụ nào được cài đặt trên thiết bị khách / được hỗ trợ bởi kernel.

Các phương thức có thể để chuyển tập tin (không có thứ tự):

  • ssh / sftp
  • mã hóa các tệp nhị phân thành định dạng có thể hiển thị với base64 / uuencode và sau đó sao chép từ / vào cửa sổ thiết bị đầu cuối telnet của bạn.
  • qua kết nối tcp đơn giản với netcathoặc socathoặc với bashvà / dev / tcp
  • tải lên / tải xuống với wgethoặc curltừ một máy chủ web
  • máy chủ ftp với một dòng lệnh ftp client
  • samba hoặc nfs gắn kết

Đọc chuyển tập tin đơn giảnLàm thế nào để nhận tập tin đến máy chủ lưu trữ khi tất cả những gì bạn có là một bàn điều khiển nối tiếp? cho nhiều possibilites.


Sao chép desktop.jpgtừ thiết bị vào máy tính của bạn bằng phương pháp netcat / nc:

Trên máy tính của bạn, hãy tắt tạm thời (hoặc cấu hình lại nếu có thể) bất kỳ tường lửa nào và chạy

netcat -l -p 10000 > desktop.jpg

và trên thiết bị

busybox nc A.B.C.D -p 10000 < desktop.jpg

nơi bạn cần thay thế ABCD bằng địa chỉ IP của máy tính của bạn. Ngay sau khi chuyển tiền thành công, quá trình netcat trên máy tính của bạn sẽ tự động dừng lại. Nếu không, có gì đó không ổn và bạn có thể dừng nó vớiCtrl+C

Đối với hướng khác, chỉ cần trao đổi <>ở cả hai bên. Tạo bản sao lưu đầu tiên của bản gốc desktop.jpg( cp desktop.jpg desktop_orig.jpg).


Tôi đã thử tiện ích WinSCP và thử kết nối thiết bị bằng giao thức ftp / sftp / scp. nhưng nó không được kết nối. Tôi có thể kết nối thiết bị thông qua lệnh telnet và có thể xem các tệp mà tôi muốn nhận và tải lại vào thiết bị.
PRdeep Kumawat

Có thể thiết bị của bạn không có máy chủ ssh hoặc ftp đang chạy.
jofel

Chà tôi không biết điều đó .. Có cách nào khác để lấy / tải tập tin từ thiết bị đó không?
PRdeep Kumawat

Bạn cũng có thể sử dụng szđể gửi các tập tin thông qua thiết bị đầu cuối. Bạn sẽ cần nó ở cả hai bên.
slm

@PRdeepKumawat Tôi mở rộng câu trả lời bằng một ví dụ.
jofel

5

Tôi không có ssh hoặc ftp (hoặc vv) trên thiết bị.

Vì vậy, tôi làm tiếp theo:

  1. telnet a.b.c.d | tee telnet.log
  2. đăng nhập và vào tập tin
  3. cat file.txt
  4. đóng phiên (tôi đóng khung tmux)
  5. dọn telnet.lográc

Thật dễ dàng để viết tiện ích để tải xuống / tải lên tập tin qua telnet


1

Hãy thử với rcplệnh.

Sử dụng man rcpđể biết thêm thông tin trong trường hợp bạn muốn tự động hóa chuyển khoản.

Nhân tiện, bạn có biết điều này rất không an toàn , phải không?


0

@jofel và tất cả những người khác, Cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn. Tôi nghĩ rằng thiết bị có một hệ điều hành tùy chỉnh được cài đặt vì nó chỉ nhận ra một số lệnh linux cụ thể. netcat không được công nhận bởi thiết bị. Tuy nhiên hôm nay tôi đã thành công trong việc chuyển tập tin bằng lệnh tftp. Tôi đã thay thế thành công tập tin desktop.jpg bằng lệnh này. Những gì tôi đã làm là, tạo máy chủ tftp trên hệ thống cửa sổ. đăng nhập qua telnet trên thiết bị và chạy các lệnh sau:

tải tập tin tftp -l -p tftp -l desktop.jpg - 192.168.0.249 69

tải lên tập tin tftp -l desktop.jpg -g 192.168.0.249 69


0

Bây giờ tôi đã thực hiện điều này bằng các phương pháp sau:

Tạo máy chủ ftp (bằng cách cài đặt solerwinds) trên hệ thống cửa sổ. đăng nhập qua telnet trên thiết bị và chạy các lệnh sau:

Để tải xuống một tập tin:

tftp -l <FileName> -p <TFTP Server IP> <Port No of TFTP>

Thí dụ:

tftp -l desktop.jpg -p 192.168.0.249 69

hoặc để tải lên tập tin:

tftp -l <FileName> -g <TFTP Server IP> <Port No of TFTP>

Thí dụ:

tftp -l desktop.jpg -g 192.168.0.249 69

vị trí mặc định của tệp tftp là C:\TFTP-Root


0

Tôi vừa tải lên tệp chương trình cơ sở ~ 7 Kb lên hệ thống nhúng Linux dựa trên BusyBox qua cổng nối tiếp.

Không có mạng, không có tiện ích chuyển tập tin; không sử dụng Base64 hoặc bất cứ thứ gì hữu ích từ xa trên thiết bị.

Trên máy chủ lưu trữ, tôi đã mã hóa phần sụn một cách tầm thường thành định dạng sau; một loại kết xuất hex bao gồm các chữ vỏ kết hợp với printfcác lệnh:

printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"

về cơ bản printfcác lệnh shell với \xcác chuỗi thoát mà printfdiễn giải. Trên thiết bị tôi đã làm:

device $ cat > firmware.sh

sau đó sử dụng minicomtệp ASCII send ( Ctrl-AS) để gửi tệp này đến máy chủ. Tôi chỉ có thể sử dụng bản sao và dán, vì lượng dữ liệu nhỏ.

Sau đó, đánh dấu thực thi và chạy printftập lệnh:

device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin

Đã kiểm tra bằng BusyBox md5sumrằng firmware.bintổng kiểm tra trên thiết bị khớp với hình ảnh phần sụn gốc trên máy chủ.

PS Cú pháp trích dẫn kép shell chuyển qua \xnguyên văn vì nó không phải là một chuỗi thoát được công nhận; do đó chúng ta không phải tăng gấp đôi dấu gạch chéo ngược.


-1

Tôi sử dụng phương pháp sau để tải xuống các tệp nhị phân nhỏ qua telnet vào hộp cửa sổ của mình:

  1. thực hiện hexdump -v -e '16 / 1 "% 02x" 'myfile.bin
  2. sao chép hex từ màn hình
  3. dán kết xuất hex vào công cụ trực tuyến này để tạo tệp nhị phân: http://tomeko.net/online_tools/hex_to_file.php?lang=en

Không chắc chắn về liên kết của bạn trong # 3!

3
@Goro Liên kết trong trường hợp này không phải là một lời giải thích có thể được trích dẫn, nó là một công cụ trực tuyến rất cần thiết cho câu trả lời. Sẽ tốt hơn nếu có một chương trình địa phương cho nhiệm vụ đó.
RalfFriedl

Cảm ơn @RalfFriedl. Tôi chỉnh sửa câu trả lời của tôi để làm rõ.
Igor Zelaya
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.