Điểm:0

Định cấu hình Windows10 VM trên Azure làm máy chủ SSH để thực hiện đường hầm ngược

lá cờ cn

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: nhập mô tả hình ảnh ở đây

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. nhập mô tả hình ảnh ở đây

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.

John Hanley avatar
lá cờ cn
Bạn đã bật Chuyển tiếp IP trên cả giao diện mạng (Azure) và trong HĐH chưa?
lá cờ cn
@JohnHanley Tôi chỉ bật Chuyển tiếp IP trên Giao diện mạng. Nhưng không có may mắn.
John Hanley avatar
lá cờ cn
Bạn phải kích hoạt cả hai
lá cờ cn
@JohnHanley Tôi vừa kích hoạt trong HĐH bằng cách làm theo các hướng dẫn sau: https://www.wikihow.com/Enable-IP-Routing-on-Windows-10. Vẫn không có may mắn.
John Hanley avatar
lá cờ cn
Thật không may, **không may mắn** không phải là thuật ngữ gỡ lỗi mà tôi có thể phân tích. Bạn cần xác định rõ ràng những gì không hoạt động. Tôi nhận ra rằng điều đó có thể khó khăn, nhưng chúng tôi không thể làm điều đó cho bạn. Vì bạn đang dùng Windows, hãy kích hoạt Wireshark.
lá cờ cn
Cảm ơn @JohnHanley vì sự giúp đỡ của bạn. Tôi đã tìm ra nó.
Điểm:0
lá cờ cn

Tôi đã tìm ra giải pháp. Đó là hai lần:

  1. tôi đã sử dụng ssh -R '*:5002:localhost:5002' xx.xx.xx.xxx thay vì ssh -R 5002:localhost:5002 xx.xx.xx.xxx. Dấu hoa thị làm cho sshd để nghe cổng 5002 trên tất cả các giao diện. Nếu không, nó sẽ chỉ nghe trên giao diện loopback.
  2. Tôi cũng phải cho phép cổng 5002 trong Tường lửa của Bộ bảo vệ Windows của máy ảo Azure Win10.

Và điều đó làm cho nó hoạt động. Bây giờ tôi có thể truy cập ứng dụng web của mình đang chạy cục bộ trên cổng 5002 qua internet bằng cách truy cập ứng dụng đó bằng IP công khai Azure VM: https://xx.xx.xx.xxx:5002/myapp

Lưu ý: Tôi đã bật Chuyển tiếp IP trên cả giao diện mạng (Azure) và trong VM OS theo gợi ý của John Hanley trong các nhận xét ở trên. Nhưng sau khi áp dụng hai bước được đề cập ở trên, tôi đã tắt Chuyển tiếp IP để xem liệu nó có còn hoạt động không và nó đã hoạt động.

John Hanley avatar
lá cờ cn
Để tạo đường hầm, bạn chỉ cần bật chuyển tiếp IP nếu các gói sẽ rời khỏi VM và đi vào mạng. Câu hỏi của bạn không đủ rõ ràng về những gì bạn đang đảo ngược đường hầm. Từ câu trả lời của bạn, tôi hiểu mục tiêu của bạn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.