Cách gỡ lỗi chuyển tiếp cổng SSH


8

Đây là một phần mở rộng cho cổng ssh chuyển tiếp để truy cập vào máy chủ của tôi từ bất cứ đâu

Tôi đã thử những thứ được đề cập ở đó nhưng tôi không thể vào sshmáy của mình.

Cài đặt bộ định tuyến Netgear để chuyển tiếp cổng:

Start Port: 22
End Port: 22
Server IP Address: IP address of by FreeBSD box

/etc/ssh/sshd_conf trong hộp FreeBSD của tôi:

PasswordAuthentication yes
AllowUsers root
X11Forwarding yes
AllowTcpForwarding yes

Làm thế nào tôi đang cố gắng kết nối:

Tôi đã đăng ký dyndns.comvà nhận một URL ánh xạ tới địa chỉ IP bên ngoài của tôi.

Từ một máy khác trong mạng gia đình của tôi, tôi làm: ssh -l root my_dyndns_ip Đó chỉ là thời gian chờ.

Mặt khác, tôi có thể ping my_dyndns_urlthành công.

Gỡ lỗi :

Làm thế nào tôi có thể sửa lỗi này để tôi có thể sshtừ bất cứ đâu đến my_dnydns_url?

Tôi đã cố gắng xem xét các bản ghi của bộ định tuyến Netgear của mình nhưng trong lần thử ssh không thành công, không có thông tin đăng nhập nào được tạo trên bộ định tuyến.

Tôi cũng nhìn vào /var/log/messagesnhưng không thể tìm thấy gì.

Chỉnh sửa: 0 Chạy ssh trong chế độ dài dòng (theo @jasonwryan đề xuất):

Tôi nhận thấy một điều kỳ lạ: Khi tôi làm ssh với url do dyndns.com cung cấp, nó cố gắng kết nối với địa chỉ IP khác so với những gì tôi nhận được từ whatismyip.com. Điều đó có sai không?

Chỉnh sửa: 1 Vấn đề với dyndns hiện đã được giải quyết.

Bây giờ khi tôi cố gắng ssh, nó hết thời gian và tôi gặp lỗi: Đã hết thời gian kết nối

Chỉnh sửa: 2 iptables hoặc NAT có liên quan gì không?

Chỉnh sửa: 3 Tôi bắt đầu sshvới -d optionđể chụp các thông báo gỡ lỗi.

Khi tôi ssh đến hộp freebsd từ bất kỳ máy nào khác trong wlan, Nó hoạt động tốt và tôi có thể thấy các bản ghi.

Nhưng khi tôi ssh đến ip bên ngoài (sẽ chuyển tiếp nó đến hộp freebsd của tôi), tôi thậm chí không thấy bất kỳ nhật ký nào - điều đó có nghĩa là, yêu cầu thậm chí không đến được hộp freebsd. Và nó lần ra.


2
Chạy SSH trong chế độ dài dòng để tạo một số thông báo lỗi có ý nghĩa:ssh -vvv ...
jasonwryan

Bộ định tuyến có thể bị lỗi. Khi họ có lỗi, họ là một cơn ác mộng. Thương hiệu của bộ định tuyến của bạn là gì và bạn đang sử dụng phần sụn gốc? Nếu có thể tôi khuyên bạn nên thử với một bộ định tuyến đã cài đặt (ví dụ) Tomato. Cà chua không hoàn hảo, nhưng là một chặng đường dài tốt hơn so với các bộ định tuyến độc quyền. Lưu ý: Tôi không cho rằng đây là nguồn gốc của vấn đề của bạn, nhưng tôi thấy các bộ định tuyến bị lỗi có thể làm phức tạp mọi thứ.
Faheem Mitha

Tôi nghĩ rằng việc bạn sử dụng thuật ngữ URL ở trên là không chính xác. Bạn có nghĩa là một tên miền đủ điều kiện (FQDN) tôi giả sử. Không host my_dyndns_ipthể hiện điều gì?
Faheem Mitha

Cảm ơn @Faheem Mitha. Tôi đã mua mạng WPN824v3. Làm thế nào tôi có thể chắc chắn nếu lỗi của nó? Và cà chua là gì? :)
hari

@hari: Nếu bộ định tuyến của bạn có vẻ hoạt động theo cách mà bạn không mong đợi, thì hãy xem xét rằng nó có thể có lỗi. Bạn đang sử dụng phần mềm gốc? Cà chua - lần đầu tiên google cho Tomato.
Faheem Mitha

Câu trả lời:


6

Tôi nghĩ vấn đề của bạn không nằm ở cổng chuyển tiếp, mà là một tùy chọn khác trong cấu hình NAT trong bộ định tuyến.

Trước tiên, đảm bảo nếu bạn sử dụng IP LAN của mình, bạn có thể SSH thành công từ một máy khác trên mạng. Điều này đảm bảo SSH hoạt động ở tất cả.

Thứ hai, kiểm tra từ một máy khác ngoài mạng bằng IP công cộng. Điều này đảm bảo rằng cổng chuyển tiếp hoạt động.

Thứ ba, kiểm tra từ cùng một máy bên ngoài mạng và sử dụng URL DynDNS. Điều này đảm bảo rằng DynDNS hoạt động tốt.

Nếu tất cả những điều đó thành công, thì không có gì sai với cấu hình của bạn (mà tôi cho là đúng) và vấn đề của bạn là chỉ truy cập IP công cộng (trực tiếp hoặc thông qua DynDNS) từ bên trong mạng . Điều này có nghĩa là bộ định tuyến của bạn cần kích hoạt phản chiếu NAT (nếu có thể) để định tuyến các yêu cầu nội bộ như thể chúng là các yêu cầu bên ngoài cho IP công cộng.


Bạn có thể thiết lập một cái gì đó để nghe cổng 22 trên một máy khác và thay đổi quy tắc chuyển tiếp cổng để hướng tới máy thứ hai không? Bạn cần loại trừ liệu nó là thứ gì đó trong bộ định tuyến hay thứ gì đó trên máy đang chặn nó.
MaQleod

1

Máy chủ sshd của bạn có đang nghe trên cổng 22 không, hãy thử thêm:

Port 22

để cấu hình của bạn.

Nếu điều đó không hiệu quả, hãy thử chuyển tiếp một cổng trên 1024 (Một số ISP không cho phép lưu lượng thuê bao không kinh doanh trên các cổng dưới 1024). Cũng đảm bảo nếu bạn làm điều này, bạn thay đổi dòng trong conf tôi vừa nói với bạn về việc phản ánh cùng một giá trị.


Cảm ơn @Mike. Tôi vừa gặp phải một vấn đề thú vị mà tôi đã đăng nhập là Chỉnh sửa: 0
hari

Tôi đã thay đổi cổng thành> 1024. Tôi đã thử sshing thành địa chỉ IP tôi nhận được từ whatismyip.com (ip bên ngoài của tôi) nhưng kết nối của tôi đã hết thời gian. Gặp lỗi: "Đã hết thời gian kết nối"
hari

0

hãy thử thay đổi cổng ssh thành 443 - nếu bạn có thể kết nối với cổng này, do đó, có một proxy giữa máy khách và PC tại nhà của bạn

ghi nhật ký tất cả các gói bị rơi và chuyển tiếp trong tường lửa của bạn, nó có thể cho phép bạn tìm các quy tắc chuyển tiếp không chính xác

hãy thử quét IP bên ngoài của bạn bằng nmap (hoặc công cụ khác) (cổng <1024) - ghi nhật ký tường lửa sẽ hiển thị các kết nối bị mất và ở phía máy khách, bạn sẽ thấy các cổng đã mở

thực hiện theo dõi cho PC tại nhà của bạn từ máy khách - có máy chủ bất ngờ nào ở giữa không, các máy chủ này có chuyển tiếp cổng chính xác không?


0

Hãy thử với tcptraceroute để gỡ lỗi nếu bạn có thể đi đến cổng từ xa trước. Nếu một số máy đang chặn cổng, bạn có thể thấy trong đầu ra. Hãy thử sử dụng netstat -atun để xem các cổng / kết nối mở trên cả hai máy.

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.