Làm thế nào để biết kích hoạt chuyển tiếp cổng ssh


12

Tôi đã cấu hình trong ~/.ssh/confignhiều cổng chuyển tiếp cho VNC với các cổng khác nhau cho mỗi máy chủ.

Có lệnh nào có thể giúp tôi biết cổng nào đang chuyển tiếp đến khi tôi mở phiên SSH không?

Câu trả lời:


13

Nếu bạn sử dụng -vtùy chọn sshnày, nó sẽ hiển thị cho bạn những gì bạn đang chuyển tiếp (nhưng nó cũng sẽ hiển thị cho bạn một loạt các thông báo gỡ lỗi khác):

ssh -v -L2222:localhost:22 remotehost

Sẽ chỉ cho bạn:

...debug messages...
debug1: Authentication succeeded (publickey).
Authenticated to remotehost ([10.0.0.23]:22).
debug1: Local connections to LOCALHOST:2222 forwarded to remote address localhost:22
debug1: Local forwarding listening on ::1 port 2222.
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on 127.0.0.1 port 2222.
...debug messages...

Và sau đó khi bạn được kết nối với lớp vỏ từ xa đó, bạn có thể nhập một chuỗi khóa đặc biệt:

~#

sẽ liệt kê các kết nối như thế này:

The following connections are open:
  #3 client-session (t4 r0 i0/0 o0/0 fd 7/8 cc -1)
  #4 direct-tcpip: listening port 2222 for localhost port 22, connect from 127.0.0.1 port 59742 (t4 r1 i0/0 o0/0 fd 10/10 cc -1)

Tuy nhiên, lưu ý rằng điều này sẽ chỉ liệt kê các cổng chuyển tiếp đang thực sự được sử dụng bởi một chương trình khác (trong trường hợp này tôi chỉ thực hiện telnet localhost 2222trên máy cục bộ của mình để chuyển tiếp tới remotehost.

Nếu bạn không có bất kỳ kết nối nào hiện đang được chuyển tiếp, bạn vẫn có thể thấy lệnh ssh của bạn đang nghe cục bộ bằng cách sử dụng netstatlệnh như thế này:

% netstat -tpln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:2222          0.0.0.0:*               LISTEN      28995/ssh       
tcp6       0      0 ::1:2222                :::*                    LISTEN      28995/ssh       

Các netstatlệnh cũng có thể sẽ liệt kê những thứ khác, nhưng những gì bạn muốn tìm kiếm trong các đầu ra là PID/Programcột để nhìn cho sshquy trình, và các Local Addresscột đó sẽ hiển thị cho bạn những gì các cảng đang được lắng nghe. Trong ví dụ này, nó đang lắng nghe port 2222cho cả giao diện IPv4 và IPv6 trên máy của tôi.


1
Cảm ơn câu trả lời này, mục tiêu của tôi là thêm tập lệnh trong /etc/update-motd.d/ để hiển thị Cổng được chuyển hướng đến. Nhưng với lệnh ~ # tôi chỉ có các cổng được chuyển hướng trên máy chủ. Và mục tiêu là hiển thị (một phần của đầu ra ssh -v): Các kết nối cục bộ tới LOCALHOST: 5901 được chuyển tiếp đến địa chỉ từ xa 127.0.0.1:5900 Nghe chuyển tiếp cục bộ trên :: 1 cổng 5901. Dường như không thể hiển thị CHỈ 2 dòng máy khách này bên.
slc66

Đối với những người đến đây vào năm 2020+: netstatđã bị lỗi thời ss.
ScumCoder
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.