Score:0

การกำหนดค่า Windows10 VM บน Azure เป็นเซิร์ฟเวอร์ SSH เพื่อดำเนินการย้อนกลับช่องสัญญาณ

ธง cn

วัตถุประสงค์: เปิดเผยเว็บแอปที่ทำงานบนเครื่องท้องถิ่นสู่โลกภายนอกโดยใช้การย้อนกลับของช่องสัญญาณ (บริการแบบ ngrok)

ฉันมี Windows 10 Pro VM ที่ทำงานบน Azure ฉันได้ติดตั้งเซิร์ฟเวอร์ OpenSSH ที่นั่นแล้วและฉันได้ทดสอบโดยใช้การส่งต่อพอร์ตในเครื่องและการส่งต่อพอร์ตแบบไดนามิก (socks proxy) ทั้งสองทำงานได้ดี

แต่ดูเหมือนว่าฉันจะไม่ทำงานการย้อนกลับของอุโมงค์

นี่คือคำสั่งที่ฉันใช้ในเครื่องของฉัน:

ssh -R 5002:localhost:5002 xx.xx.xx.xxx

ที่ไหน, xx.xx.xx.xxx เป็น IP สาธารณะของ Win10 VM บน Azure 5002 เป็นพอร์ตที่เว็บแอปของฉันทำงานบนเครื่องของฉัน และฉันต้องการเก็บพอร์ตเดียวกันไว้สำหรับ Azure VM

คำสั่งด้านบนแจ้งให้ฉันป้อนรหัสผ่าน และเมื่อป้อนแล้ว จะแสดงข้อความต่อไปนี้บนเทอร์มินัล ซึ่งอาจแสดงว่าการเชื่อมต่อสำเร็จ

me@VMW10Pro C:\Users\me>

แต่เมื่อฉันพยายามเข้าถึงเว็บแอปที่ทำงานในเครื่องของฉันดังต่อไปนี้ ไม่มีอะไรเกิดขึ้น:

https://xx.xx.xx.xxx:5002/myapp

ฉันพยายามโดยไม่มีโชคด้วย:

http://xx.xx.xx.xxx:5002/myapp

นี่คือวิธีที่ฉันกำหนดค่ากฎพอร์ตขาเข้าสำหรับ Azure VM: ป้อนคำอธิบายรูปภาพที่นี่

และนี่คือลักษณะของกฎพอร์ตขาออก ฉันได้อนุญาตพอร์ตทั้งหมดชั่วคราว ป้อนคำอธิบายรูปภาพที่นี่

และนี่คือ sshd_config ไฟล์บน Azure VM สิ่งเดียวที่ฉันทำคือการตั้งค่า พอร์ตเกตเวย์ ถึง ใช่:

# นี่คือไฟล์การกำหนดค่าทั้งระบบของเซิร์ฟเวอร์ sshd ดู
# sshd_config(5) สำหรับข้อมูลเพิ่มเติม

# กลยุทธ์ที่ใช้สำหรับตัวเลือกในค่าเริ่มต้น sshd_config ที่มาพร้อมกับ
# OpenSSH คือการระบุตัวเลือกด้วยค่าเริ่มต้นโดยที่
# เป็นไปได้ แต่ปล่อยให้พวกเขาแสดงความคิดเห็น ตัวเลือกที่ไม่มีความคิดเห็นจะแทนที่
#ค่าเริ่มต้น

#ท่าเรือ22
#AddressFamily ใด ๆ
#ฟังที่อยู่ 0.0.0.0
#ฟังที่อยู่ ::

#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

# ยันต์และกุญแจ
#RekeyLimit ไม่มีค่าเริ่มต้น

#บันทึก
#SyslogFacility AUTH
ข้อมูล #LogLevel

# การรับรองความถูกต้อง:

#LoginGraceTime 2 ม
#PermitRootLogin ห้ามรหัสผ่าน
#StrictModes ใช่
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication ใช่

# ค่าเริ่มต้นคือการตรวจสอบทั้ง .ssh/authorized_keys และ .ssh/authorized_keys2
# แต่สิ่งนี้ถูกแทนที่ ดังนั้นการติดตั้งจะตรวจสอบเฉพาะ .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys

#AuthorizedPrincipalsไม่มีไฟล์

# เพื่อให้ใช้งานได้ คุณจะต้องมีรหัสโฮสต์ใน %programData%/ssh/ssh_known_hosts
#HostbasedAuthentication เลขที่
# เปลี่ยนเป็น ใช่ หากคุณไม่เชื่อถือ ~/.ssh/known_hosts for
# การรับรองความถูกต้องตามโฮสต์
#IgnoreUserKnownHosts หมายเลข
# อย่าอ่านไฟล์ ~/.rhosts และ ~/.shosts ของผู้ใช้
#IgnoreRhosts ใช่

# หากต้องการปิดใช้งานรหัสผ่านข้อความธรรมดาแบบ Tunneled ให้เปลี่ยนเป็นไม่ที่นี่!
#PasswordAuthentication ใช่
#PermitEmptyPasswords เลขที่

#AllowAgentForwarding ใช่
#AllowTcpForwarding ใช่
GatewayPort ใช่
#PermitTTY ใช่
#PrintMotd ใช่
#PrintLastLog ใช่
#TCPKeepAlive ใช่
#ใช้เข้าสู่ระบบหมายเลข
#ใบอนุญาตผู้ใช้สิ่งแวดล้อม เลขที่
#ClientAliveInterval 0
#ClientAliveCountสูงสุด 3
#ใช้หมายเลข DNS
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#อุโมงค์อนุญาตหมายเลข
#ChrootDirectory ไม่มี
#เวอร์ชันภาคผนวกไม่มี

# ไม่มีเส้นทางแบนเนอร์เริ่มต้น
#ไม่มีแบนเนอร์

# ลบล้างค่าเริ่มต้นที่ไม่มีระบบย่อย
ระบบย่อย sftp sftp-server.exe

# ตัวอย่างของการตั้งค่าที่ลบล้างในแต่ละผู้ใช้
#Match ผู้ใช้ anoncvs
# AllowTcpForwarding เลขที่
#ใบอนุญาตTTYเลขที่
# เซิร์ฟเวอร์ ForceCommand cvs

ผู้ดูแลกลุ่มแมตช์
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

เดอะ sshd_config ไฟล์ในเครื่องของฉันก็มีลักษณะเหมือนกับด้านบนด้วย พอร์ตเกตเวย์ ตั้งค่าให้ ใช่.

โปรดทราบ: ฉันไม่ใช่ผู้เชี่ยวชาญเกี่ยวกับระบบเครือข่าย มีแบบฝึกหัดและวิธีใช้อื่น ๆ ในการทำเช่นเดียวกันกับ Linux VM แต่ฉันแค่ต้องการใช้ประโยชน์จาก Windows VM ที่มีอยู่

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก

John Hanley avatar
cn flag
คุณเปิดใช้งานการส่งต่อ IP ทั้งในอินเทอร์เฟซเครือข่าย (Azure) และในระบบปฏิบัติการหรือไม่
cn flag
@JohnHanley ฉันเปิดใช้งานการส่งต่อ IP บนอินเทอร์เฟซเครือข่ายเท่านั้น แต่ไม่มีโชค
John Hanley avatar
cn flag
คุณต้องเปิดใช้งานทั้งสองอย่าง
cn flag
@JohnHanley ฉันเพิ่งเปิดใช้งานในระบบปฏิบัติการโดยทำตามคำแนะนำเหล่านี้: https://www.wikihow.com/Enable-IP-Routing-on-Windows-10 ยังไม่มีโชค
John Hanley avatar
cn flag
ขออภัย **โชคไม่ดี** ไม่ใช่คำที่ใช้แก้ไขจุดบกพร่องที่ฉันสามารถวิเคราะห์ได้ คุณต้องระบุให้ชัดเจนว่าอะไรไม่ทำงาน ฉันรู้ว่ามันอาจเป็นเรื่องยาก แต่เราทำให้คุณไม่ได้ เนื่องจากคุณใช้ Windows ให้เปิด Wireshark
cn flag
ขอบคุณ @JohnHanley สำหรับความช่วยเหลือของคุณ ฉันคิดออกแล้ว
Score:0
ธง cn

ฉันคิดออกแล้ว เป็นสองเท่า:

  1. ฉันใช้ ssh -R '*:5002:localhost:5002' xx.xx.xx.xxx แทน ssh -R 5002:localhost:5002 xx.xx.xx.xxx. เครื่องหมายดอกจันทำให้ sshd เพื่อฟังพอร์ต 5002 บนอินเทอร์เฟซทั้งหมด มิฉะนั้นก็จะฟังบนอินเทอร์เฟซย้อนกลับ
  2. ฉันยังต้องอนุญาตพอร์ต 5002 ในไฟร์วอลล์ Windows Defender ของ Azure Win10 VM

และนั่นทำให้มันใช้งานได้ ตอนนี้ฉันสามารถเข้าถึงเว็บแอปที่ทำงานในเครื่องบนพอร์ต 5002 ทางอินเทอร์เน็ตได้โดยเข้าถึงโดยใช้ Azure VM public IP: https://xx.xx.xx.xxx:5002/myapp

หมายเหตุ: ฉันเปิดใช้งานการส่งต่อ IP ทั้งบนอินเทอร์เฟซเครือข่าย (Azure) และใน VM OS ตามคำแนะนำของ John Hanley ในความคิดเห็นด้านบน แต่หลังจากใช้สองขั้นตอนข้างต้น ฉันปิดใช้งานการส่งต่อ IP เพื่อดูว่ายังใช้งานได้หรือไม่

John Hanley avatar
cn flag
สำหรับการทำช่องสัญญาณ คุณจะต้องเปิดใช้งานการส่งต่อ IP หากแพ็กเก็ตจะออกจาก VM และไปยังเครือข่าย คำถามของคุณไม่ชัดเจนเพียงพอเกี่ยวกับสิ่งที่คุณกำลังจะย้อนกลับไป จากคำตอบของคุณ ฉันเข้าใจวัตถุประสงค์ของคุณ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา