Gửi dữ liệu qua các máy tính nối mạng bằng Netcat bằng dòng lệnh
Netcat là công cụ dòng lệnh mạnh mẽ có thể đọc và ghi dữ liệu qua kết nối mạng bằng TCP/IP, công cụ này thường được sử dụng cho chuyển tiếp, truyền tệp, quét cổng, cùng nhiều thứ khác. Mặc dù netcat có nguồn gốc từ thế giới unix và linux, nhưng netcat cũng được tích hợp vào Mac OS X và chúng ta sẽ sử dụng tiện ích nc như một cách dễ dàng để gửi dữ liệu và văn bản khác qua hai máy tính nối mạng.Bằng cách sử dụng netcat để gửi dữ liệu với mối quan hệ máy khách và máy chủ khá đơn giản, nó cung cấp một giải pháp thay thế có khả năng nhanh hơn cho việc chia sẻ tệp truyền thống khi người dùng muốn ở lại dòng lệnh trong khi gửi và nhận dữ liệu cũng như kết nối qua SSH hoặc SFTP thì không' không thiết thực.
Lưu ý rằng netcat không yêu cầu đăng nhập hoặc xác thực, yêu cầu duy nhất là máy khách biết địa chỉ IP của máy chủ và số cổng nghe. Điều đó rõ ràng làm tăng một số khả năng lạm dụng bảo mật, do đó, sử dụng netcat để gửi dữ liệu và văn bản thường được dành riêng cho người dùng nâng cao hoặc sử dụng riêng sau mạng cục bộ được bảo vệ, nơi có ít rủi ro. Các tình huống cần nhấn mạnh bảo mật là quan trọng sẽ tốt hơn nếu sử dụng SSH.
Để dễ hiểu, chúng tôi sẽ gọi máy tính 1 đang nghe bằng netcat là “Máy chủ” và chúng tôi sẽ gọi máy tính 2 đang gửi dữ liệu đến máy tính 1 là “máy khách”.
Đặt Netcat nghe trên Máy chủ (Máy tính 1) & Cổng
Chúng tôi sẽ khởi chạy netcat và để nó lắng nghe trên cổng 2999, sau đó chuyển hướng bất kỳ dữ liệu nào nhận được tới tệp có tên “received.txt” bằng chuỗi lệnh sau:
nc -l 2999 > đã nhận.txt
Trước khi gọi nó là chuyển sang máy khách, bạn sẽ muốn có địa chỉ IP của máy Mac trên mạng cục bộ. Bạn có thể lấy nó từ bảng điều khiển Mạng hoặc vì bạn đã ở trong Terminal, thông qua dòng lệnh với cú pháp sau:
ipconfig getifaddr en0
Máy Mac hiện đại chỉ có Wi-Fi sẽ sử dụng en0, máy Mac có ethernet & wifi có thể sử dụng en1. Nếu không có kết quả gì, hãy thử giao diện khác để lấy IP LAN. Giả sử IP của máy Mac này được báo cáo là “192.168.1.101”, tất nhiên IP của bạn có thể thay đổi. Bạn sẽ cần điều này trên máy khách để gửi dữ liệu, chúng tôi sẽ đề cập tiếp theo.
Pipe Dữ liệu từ Máy khách (Máy tính 2) đến Máy chủ Nghe
Bây giờ trên máy khách mà bạn muốn gửi dữ liệu từ đó, bạn có thể sử dụng một lệnh như sau. Chúng tôi sẽ sử dụng cat để kết xuất tệp văn bản qua mạng tới máy chủ netcat đang nghe, nhưng bạn có thể chuyển qua bất kỳ thứ gì bạn muốn:
cat sendthisdataover.txt | nc 192.168.1.101 2999
Để tính năng này hoạt động bình thường, hãy nhớ điền địa chỉ IP của chính bạn từ máy chủ và gửi tệp hoặc văn bản thích hợp mà bạn muốn gửi qua.
Giả sử mạng cục bộ thậm chí còn hơi nhanh, thì dữ liệu sẽ đến khá nhanh nếu không muốn nói là ngay lập tức. Sau khi quá trình truyền dữ liệu hoàn tất, cả hai bên của kết nối sẽ ngừng hoạt động và máy chủ sẽ ngừng lắng nghe, sau đó đóng cổng. Điều này làm cho việc gửi dữ liệu một lần như tệp nhật ký hoặc tài liệu văn bản lớn trở nên hiệu quả nhưng không nhất thiết phải thực tế khi di chuyển qua nhiều tệp.
Như đã đề cập, bạn có thể chuyển qua bất kỳ dữ liệu nào, vì vậy, cho dù đó là đầu ra của ứng dụng khác, đuôi, mèo hay thậm chí được kết xuất trực tiếp từ khay nhớ tạm bằng pbcopy và pbpaste, dữ liệu đó sẽ được chuyển qua netcat.
Cần lưu ý rằng có nhiều cách thuận tiện hơn để chia sẻ khay nhớ tạm giữa các máy Mac hoặc giữa máy Mac với máy Linux hoặc Windows và trong những tình huống đó, bạn nên sử dụng các công cụ miễn phí như Teleport dành cho Mac- chia sẻ đầu vào với máy Mac hoặc tiện ích Synergy miễn phí nếu bạn đang sử dụng đa nền tảng giữa máy Mac và PC. Cả hai đều cho phép người dùng chia sẻ dữ liệu khay nhớ tạm cũng như các thiết bị đầu vào như chuột và bàn phím.
Xin lưu ý, trong khi phần trình diễn này được hiển thị trên hai máy Mac chạy OS X, không có lý do gì bạn không thể sử dụng netcat để gửi dữ liệu giữa máy Mac và máy Linux hoặc ngược lại.
Có rất nhiều cách sử dụng tuyệt vời khác cho netcat ngoài kia, nếu bạn có bất kỳ mục yêu thích nào, hãy cho chúng tôi biết trong phần nhận xét!