Mục đích:
Đưa các ứng dụng web chạy trên máy cục bộ ra thế giới bên ngoài bằng cách sử dụng đường hầm ngược (ngrok like service).
Tôi có máy ảo Windows 10 Pro chạy trên Azure. Tôi đã cài đặt máy chủ OpenSSH ở đó và tôi đã kiểm tra nó bằng cách sử dụng chuyển tiếp cổng cục bộ và chuyển tiếp cổng động (proxy vớ). Cả hai đều hoạt động tốt.
Nhưng tôi dường như không làm cho đường hầm ngược hoạt động.
Đây là lệnh tôi đang sử dụng trên máy cục bộ của mình:
ssh -R 5002:localhost:5002 xx.xx.xx.xxx
Ở đâu,
xx.xx.xx.xxx là IP công khai của máy ảo Win10 trên Azure.
5002 là cổng nơi ứng dụng web của tôi đang chạy trên máy cục bộ của tôi và tôi cũng muốn giữ cùng một cổng cho Azure VM.
Lệnh trên nhắc tôi nhập mật khẩu và khi nhập mật khẩu, nó hiển thị lời nhắc sau trên thiết bị đầu cuối, điều này có thể cho biết rằng kết nối đã thành công.
me@VMW10Pro C:\Users\me>
Nhưng khi tôi cố gắng truy cập ứng dụng web đang chạy cục bộ của mình như sau, không có gì xảy ra:
https://xx.xx.xx.xxx:5002/myapp
Tôi cũng đã thử, không có may mắn:
http://xx.xx.xx.xxx:5002/myapp
Đây là cách tôi định cấu hình quy tắc cổng gửi đến cho Azure VM:
Và đây là cách các quy tắc cổng gửi đi trông như thế nào. Tôi thậm chí đã tạm thời cho phép tất cả các cổng.
Và đây là sshd_config
tệp trên Azure VM. Thay đổi duy nhất tôi đã thực hiện là cài đặt CổngCổng
đến Vâng
:
# Đây là tệp cấu hình toàn hệ thống của máy chủ sshd. Nhìn thấy
# sshd_config(5) để biết thêm thông tin.
# Chiến lược được sử dụng cho các tùy chọn trong sshd_config mặc định được gửi cùng với
# OpenSSH là chỉ định các tùy chọn với giá trị mặc định của chúng ở đâu
# có thể, nhưng hãy để họ nhận xét. Các tùy chọn không ghi chú sẽ ghi đè lên
# giá trị mặc định.
#Cảng 22
#AddressFamily bất kỳ
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key
# Mật mã và khóa
#RekeyLimit mặc định không có
# Đăng nhập
#SyslogFacility AUTH
#LogLevel THÔNG TIN
# Xác thực:
#Đăng nhậpGraceTime 2 phút
#PermitRootLogin cấm mật khẩu
#StrictModes có
#MaxAuthTries 6
#MaxSessions 10
#PubkeyAuthentication có
# Mặc định là kiểm tra cả .ssh/authorized_keys và .ssh/authorized_keys2
# nhưng điều này bị ghi đè nên quá trình cài đặt sẽ chỉ kiểm tra .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsKhông có tệp nào
# Để điều này hoạt động, bạn cũng sẽ cần các khóa máy chủ trong %programData%/ssh/ssh_known_hosts
#HostbasedAuthentication không
# Thay đổi thành có nếu bạn không tin tưởng ~/.ssh/known_hosts cho
# Xác thực dựa trên máy chủ
#IgnoreUserKnownHosts không
# Không đọc các tệp ~/.rhosts và ~/.shosts của người dùng
#IgnoreRhosts có
# Để tắt mật khẩu văn bản rõ ràng được tạo đường hầm, hãy thay đổi thành không ở đây!
#PasswordAuthentication có
#PermitEmptyMật khẩu không
#AllowAgentChuyển tiếp có
#AllowTcpChuyển tiếp có
GatewayPorts có
#PermitTTY có
#PrintMotd vâng
#PrintLastLog có
#TCPKeepAlive có
#Sử dụngĐăng nhập không
#PermitUserEnvironment không
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS không
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel không
#ChrootDirectory không có
#VersionAddendum không có
# không có đường dẫn biểu ngữ mặc định
#Biểu ngữ không có
# ghi đè mặc định không có hệ thống con
Hệ thống con sftp sftp-server.exe
# Ví dụ về cài đặt ghi đè trên cơ sở mỗi người dùng
#Match người dùng anoncvs
# AllowTcpForwarding không
# Giấy phépTTY không
# Máy chủ cvs ForceCommand
Quản trị viên nhóm đối sánh
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Các sshd_config
tệp trên máy cục bộ của tôi cũng giống như trên với CổngCổng
đặt thành Vâng
.
Xin lưu ý: Tôi không phải là chuyên gia về công cụ kết nối mạng. Có sẵn các hướng dẫn và cách thực hiện khác để thực hiện tương tự với máy ảo Linux. Nhưng tôi chỉ muốn tận dụng máy ảo Windows hiện có.
Bất kì sự trợ giúp nào đều được đánh giá cao.