Tôi đã cài đặt GitLab trong docker trên một máy ở xa. Bây giờ tôi muốn chuyển tiếp cổng 8080 từ máy ở xa này sang cổng cục bộ 8080 của tôi.
Trên máy ở xa:
sudo docker run --detach --hostname gitlab.example.com --publish 443:443 --publish 8080:80 --publish 2222:22 --name gitlab --restart always --volume $GITLAB_HOME/config:/etc /gitlab --volume $GITLAB_HOME/logs:/var/log/gitlab --volume $GITLAB_HOME/data:/var/opt/gitlab gitlab/gitlab-ce:latest
Trên máy cục bộ của tôi:
ssh -N -o "ExitOnForwardFailure yes" -R 8080:localhost:8080 someuser@the-distant-server -vvv
Tôi nhận được lỗi sau đây:
gỡ lỗi1: cam kết: mạng
debug3: nhận gói: gõ 80
gỡ lỗi1: client_input_global_request: rtype [email protected] muốn_reply 0
debug3: nhận gói tin: gõ 4
gỡ lỗi1: Điều khiển từ xa: /home/someuser/.ssh/authorized_keys:1: tùy chọn chính: chuyển tiếp tác nhân chuyển tiếp cổng pty người dùng-rc x11 chuyển tiếp
debug3: nhận gói: gõ 82
debug1: lỗi chuyển tiếp từ xa cho: lắng nghe 8080, kết nối máy chủ cục bộ: 8080
Lỗi: không thể chuyển tiếp cổng từ xa cho cổng nghe 8080
Và thực sự, trong /var/log/auth.log
, Tôi nhận được lỗi sau đây:
Ngày 9 tháng 7 16:51:42 remote-server sshd[2723782]: Đã chấp nhận khóa công khai cho một số người dùng từ 192.168.200.182 cổng 44850 ssh2: RSA SHA256:
Ngày 9 tháng 7 16:51:42 máy chủ từ xa sshd[2723782]: pam_unix(sshd:session): phiên được mở cho người dùng someuser bởi (uid=0)
Ngày 9 tháng 7 16:51:42 remote-server systemd-logind[1083]: Phiên mới 116923 của người dùng someuser.
Ngày 9 tháng 7 16:51:42 remote-server systemd[2723795]: pam_unix(systemd-user:session): phiên được mở cho người dùng someuser bởi (uid=0)
Ngày 9 tháng 7 16:51:43 máy chủ ở xa sshd[2723812]: error: bind [127.0.0.1]:8080: Địa chỉ đã được sử dụng
Ngày 9 tháng 7 16:51:43 sshd máy chủ ở xa [2723812]: lỗi: channel_setup_fwd_listener_tcpip: không thể nghe cổng: 8080
Ngày 9 tháng 7 16:51:43 máy chủ ở xa sshd[2723782]: pam_unix(sshd:session): đóng phiên cho người dùng someuser
Ngày 9 tháng 7 16:51:43 remote-server systemd-logind[1083]: Phiên 116923 đã đăng xuất. Đang chờ các tiến trình thoát ra.
Ngày 9 tháng 7 16:51:43 remote-server systemd-logind[1083]: Đã xóa phiên 116923.
Nó nói với tôi bind [127.0.0.1]:8080: Địa chỉ đã được sử dụng
.
- Tôi không hiểu làm thế nào tôi có thể nghe cổng 8080 từ máy ở xa nếu không có quy trình nào có thể ghi vào cổng đó. Tôi nghĩ rằng tôi đã hiểu sai về cách cổng/nghe/viết/ssh hoạt động ở đây.
- Làm thế nào tôi có thể sửa lỗi
ssh
lệnh để làm cho đường hầm này hoạt động và truy cập phiên bản GitLab trên của tôi 127.0.0.1:8080
?