Tôi đã có một máy tính để bàn Ubuntu ở nhà và một máy tính xách tay mac. Tôi đang cố gắng thiết lập tính năng này để tôi có thể ssh vào máy ub Ubuntu của mình từ bên ngoài mạng cục bộ.
Đây là những gì tôi đã làm cho đến nay:
(1) Tôi đã kích hoạt ssh trên cổng 22 trên máy ubfox của mình. Tệp / etc / ssh / sshd_config nói rằng nó đang nghe trên Cổng 22.
(2) Nếu tôi nhìn vào trạng thái tường lửa của mình ( ufw status
), nó nói:
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
(3) Trên bộ định tuyến Netgear C3700-100NAS của tôi, tôi đã dành địa chỉ IP cho máy ubfox của mình để nó không thay đổi.
(4) Tôi thiết lập chuyển tiếp cổng, với loại dịch vụ TCP / UDP, các cổng bên ngoài và bên trong được đặt thành 22 và nó trỏ đến địa chỉ IP bên trong của tôi.
(5) Tôi đã tìm thấy địa chỉ IP công cộng của mình bằng cách sử dụng http://www.myipaddress.com/
Tôi có thể ssh thành công vào máy ub Ubuntu của tôi từ nhà, trên mạng cục bộ, sử dụng địa chỉ IP cục bộ.
Nhưng ssh từ xa hết thời gian. Tôi cũng đã thử một trình kiểm tra chuyển tiếp cổng trực tuyến ( https://www.yougetsignal.com/tools/open-ports/ ) và khi tôi trỏ nó đến địa chỉ IP công cộng của tôi và cổng 22, nó cho tôi biết cổng đã bị đóng.
Khi tôi cố gắng từ xa ssh, tôi nhận được như sau:
~ $ ssh -vvv myusername@xx.xxx.xxx.xx
OpenSSH_7.4p1, LibreSSL 2.5.0
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: resolving "xx.xxx.xxx.xx" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to xx.xxx.xxx.xx [xx.xxx.xxx.xx] port 22.
debug1: connect to address xx.xxx.xxx.xx port 22: Operation timed out
ssh: connect to host xx.xxx.xxx.xx port 22: Operation timed out
CẬP NHẬT
Theo một số lời khuyên được liệt kê dưới đây, tôi đã thực hiện một vài thay đổi. Tôi đã thay đổi cổng chuyển tiếp để bây giờ sử dụng cổng 8022 làm cổng bên ngoài, nhưng vẫn là cổng 22 làm cổng nội bộ. Tôi cũng đã bật một tùy chọn trong cài đặt bộ định tuyến của mình để nó phản hồi lại ping.
Bây giờ, nếu tôi ping IP công cộng của mình, nó sẽ phản hồi. Tuy nhiên, nếu tôi kiểm tra xem cổng 8022 có mở hay không thông qua trang web yougetsignal được liệt kê ở trên, nó vẫn cho biết nó đã đóng.
Nếu tôi cố gắng SSH:
> ssh -vvv username@xx.xxx.xxx.xx -p 8022
OpenSSH_7.4p1, LibreSSL 2.5.0
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: resolving "xx.xxx.xxx.xx" port 8022
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to xx.xxx.xxx.xx [xx.xxx.xxx.xx] port 8022.
debug1: connect to address xx.xxx.xxx.xx port 8022: Operation timed out
ssh: connect to host xx.xxx.xxx.xx port 8022: Operation timed out
Tôi cũng đã gọi cho ISP của mình và mặc dù đó là một cuộc trò chuyện khó hiểu, nhưng dường như họ không chặn các cổng mà tôi đang cố sử dụng ...
Theo một gợi ý dưới đây, tôi chạy sudo nmap --packet-trace --traceroute --reason xx.xxx.xxx.xx
. Đây là một tập hợp con của đầu ra. Cổng 8022 không được liệt kê, nhưng tôi tưởng tượng nó phải là:
Host is up, received reset ttl 253 (0.0028s latency).
Not shown: 996 filtered ports
Reason: 996 no-responses
PORT STATE SERVICE REASON
135/tcp closed msrpc reset ttl 253
139/tcp closed netbios-ssn reset ttl 253
445/tcp closed microsoft-ds reset ttl 253
1025/tcp closed NFS-or-IIS reset ttl 253
Tôi không chắc vấn đề là ... máy Ubuntu ở đâu? bộ định tuyến? Bất kỳ ý tưởng làm thế nào để tìm ra điều này?
Cảm ơn!