Score:4

เป็นไปได้ไหมที่จะตั้งชื่อแทนหมายเลขพอร์ต

ธง us

ฉันต้องการเรียกใช้บริการบนพอร์ตที่กำหนดเอง (เช่น jenkins บน 8080) และฉันต้องการเข้าถึงผ่านเบราว์เซอร์ด้วยชื่อที่ฉันจำได้ เช่น http://localhost:เจนกินส์ ซึ่งจะเป็นนามแฝงของ http://localhost:8080

  1. สิ่งนี้เป็นไปได้หรือไม่?
  2. ถ้าเป็นเช่นนั้น มันจะเป็นเพียงสิ่ง HTTP หรือโปรโตคอลเครือข่ายทั้งหมดจะรู้จักนามแฝงนี้หรือไม่
  3. นอกจากนี้ หาก (1) เป็นจริง คุณลักษณะนี้รองรับในระบบปฏิบัติการอื่นหรือไม่ (centos, windows ฯลฯ)

แก้ไข:

  1. อะไรคือส่วนที่เคลื่อนไหวตั้งแต่ตอนที่ฉันพิมพ์ที่อยู่จนกระทั่งได้รับการแก้ไข ฉันเดาว่าตัวแยกวิเคราะห์ของเบราว์เซอร์จึงอาจมีเบราว์เซอร์ที่รองรับคำขอของฉัน หลังจากนั้น url ที่แยกวิเคราะห์อาจถูกส่งผ่านไปยังกระบวนการของระบบปฏิบัติการ ซึ่งจะสามารถดำเนินการตามคำขอของฉันและยอมรับ str แทน int... มีส่วนใดเหล่านี้ที่สามารถกำหนดค่าในลักษณะที่จะตอบสนองความต้องการของฉันได้หรือไม่
TooTea avatar
cn flag
คุณต้องการทำงานนี้ที่ไหน เพียงไม่กี่เครื่องภายใต้การควบคุมของคุณ? ("localhost" เป็นเพียงตัวอย่างหรือหมายถึงใช้กับเครื่องเดียวเท่านั้น)
cn flag
WoJ
หากคุณตัดสินใจใช้พร็อกซีตามคำตอบอื่นๆ ให้ลองใช้ Caddy (https://caddyserver.com/) ซึ่งทำให้ง่ายมาก
Aaron F avatar
cn flag
คุณสามารถลอง [เพิ่มตัวจัดการโปรโตคอลที่กำหนดเอง](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler#example) อาจทำงานได้ไม่ดีนักสำหรับกรณีการใช้งานของคุณ แต่เป็นสิ่งที่คุณสามารถลองใช้ได้อย่างง่ายดายภายในไม่กี่นาที
chrylis -cautiouslyoptimistic- avatar
แนวคิดของ _พอร์ตที่รู้จักกันดี_ มีความสำคัญที่นี่
Score:7
ธง vn

สิ่งนี้สามารถแก้ไขได้ด้วย "reverse proxying" - ดังนั้นควรศึกษาข้อมูลในสาขานี้สักหน่อย

ไม่สามารถทำในสิ่งที่คุณถามจริง ๆ (นามแฝงหมายเลขพอร์ต) แต่สามารถให้วิธีอื่นในการสร้างเส้นทางที่ง่ายสำหรับแต่ละบริการ (โดยการส่งต่อระเบียน DNS ไปยัง IP และพอร์ตเฉพาะ)

โดยพื้นฐานแล้วสิ่งที่คุณ สามารถ ทำด้วย reverse proxy คือ:

  • ตรวจสอบให้แน่ใจว่าไซต์ทั้งหมดของคุณแสดงใบรับรอง SSL และบังคับใช้ (หากคุณเลือก) HTTPS ในกรณีนี้
  • แผนที่ http://localhost:8080 ถึง https://jenkins.local (พอร์ตไปข้างหน้า)
  • แผนที่ http://localhost/เจนกินส์ ถึง https://jenkins.local (ตำแหน่งข้างหน้า)

ด้านบนใช้ได้กับการแก้ไข DNS ทั้งภายในและภายนอก

ส่วนตัวผมใช้ ตัวจัดการพร็อกซี Nginx, แต่ เทรฟิค ก็เป็นตัวเลือกยอดนิยมเช่นกัน

เพื่อให้ได้แนวคิดในการตั้งค่า Nginx Proxy Manager จะมีลักษณะดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

cn flag
WoJ
การใช้ HTTPS ไม่ใช่ข้อกำหนดเบื้องต้นในการย้อนกลับพร็อกซี อาจเป็นความคิดที่ดี (ด้วยเหตุผลหลายประการ ความปลอดภัยเป็นหนึ่งในนั้น - แต่ YMMV)
Artur Meinild avatar
vn flag
เห็นด้วย แต่ฉันไม่เชื่อหรอกว่าฉันเคยบอกว่ามันเป็นข้อกำหนดเบื้องต้น ฉันให้มันเป็นตัวอย่างของสิ่งที่คุณสามารถทำได้ อย่างไรก็ตาม ฉันไม่เห็นเหตุผลใดๆ ในปี 2021 ที่จะไม่ใช้ HTTPS เมื่อเป็นไปได้ ดังนั้นคุณสามารถพูดได้ว่าฉันคิดว่าคนส่วนใหญ่ต้องการใช้
cn flag
WoJ
ประเด็นแรกของคุณระบุว่า "มั่นใจ" และ "บังคับใช้" ไม่ว่าในกรณีใด การตัดสินใจใช้หรือไม่ใช้ HTTPS ขึ้นอยู่กับผู้ดูแลระบบ ฉันแค่ต้องการย้ำว่านี่ไม่ใช่สิ่งที่คุณต้องทำ มีหลายกรณีที่ง่ายกว่า (และยังปลอดภัย) ในการใช้ HTTP
mx flag
เพื่อให้ชัดเจนเนื่องจากไม่ชัดเจนโดยไม่ต้องอ่านคำตอบอื่น ๆ สิ่งนี้ไม่ได้ทำ * ค่อนข้าง * สิ่งที่ผู้ถามถาม (ซึ่งจะใช้ชื่อสัญลักษณ์สำหรับหมายเลขพอร์ต) แต่นั่นไม่จริง เป็นไปได้และ นี่คือสิ่งที่ *ใกล้เคียงที่สุด* ที่ใช้งานได้และแก้ปัญหาพื้นฐาน
Artur Meinild avatar
vn flag
ฉันยอมรับ. ฉันพยายามแก้ปัญหาพื้นฐานเนื่องจาก OP ระบุว่า: "... และฉันชอบเข้าถึงผ่านเบราว์เซอร์ด้วยชื่อที่ฉันจำได้" ฉันแก้ไขคำตอบเพื่อสะท้อนสิ่งนี้
Score:4
ธง ng

จาก rfc 1738 https://datatracker.ietf.org/doc/html/rfc1738#section-3.1

พอร์ตใน url เป็นตัวเลข

ท่า

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

เป็นไปได้ที่จะใช้โซลูชันเช่น Nginx, Apache, Squid, lighthttpd เป็นต้น โปรดทราบว่าสิ่งเหล่านี้จะแมปพอร์ตของคุณกับชื่อใดก็ตามที่คุณระบุ แต่จะเป็นสิ่งที่ไม่ขึ้นอยู่กับ localhost ภายใน คุณสามารถใช้ซอฟต์แวร์นี้ใน Linux และระบบที่ใช้หน้าต่าง

นี่คือตัวอย่าง apache

ฟัง IP_ADDR:80
NameVirtualHost IP_ADDR:80

<โฮสต์เสมือน IP_ADDR:80>
  ชื่อเซิร์ฟเวอร์ yourname.yourdomain

  ProxyPass / http://localhost:10000/
  ProxyPassReverse / http://localhost:10000/

</เวอร์ชวลโฮสต์>

อีกวิธีหนึ่ง หากคุณต้องการให้เซิร์ฟเวอร์เป็นที่จดจำ คือการรวม IP ที่แตกต่างกันของ Jenkins เข้าด้วยกันโดยเรียกใช้งานบนเซิร์ฟเวอร์อื่น แล้วทำการแมปใน / etc / โฮสต์ เช่น 192.168.1.1 เจนกินส์ (โดยทั่วไปคุณเพิ่มสิ่งนี้ในไฟล์) หลังจากทำสิ่งนี้แล้ว ให้เราแจ้งว่าเจนกินส์ของคุณกำลังทำงานอยู่ 192.168.1.1:3000 คุณสามารถเข้าถึงได้โดย http://เจนกินส์:3000.

แม้ว่าคุณจะทำเช่นนี้ โปรโตคอลเครือข่ายทั้งหมดจะไม่ทำงาน คุณจะไม่สามารถเข้าถึง Jenkins โดยใช้ https://เจนกินส์:3000.

หวังว่านี่จะช่วยได้ !!

CIsForCookies avatar
us flag
ฉันมีชื่อแทน IP อยู่แล้วโดยใช้ `etc/hosts` ดังนั้นฉันจึงหวังว่าจะมีโซลูชันเดียวกันสำหรับพอร์ตด้วย :) ขอบคุณ!
Guntram Blohm avatar
cn flag
มี /etc/services แต่โดยทั่วไปแล้วเบราว์เซอร์จะไม่ใช้ และแม้ว่าจะมีก็ตาม คุณจะต้องติดตั้งบนไคลเอนต์ ไม่ใช่เซิร์ฟเวอร์
Score:0
ธง na

วิธีแก้ปัญหาที่ง่ายที่สุดคือการใช้ แดง เพื่อเปลี่ยนเส้นทางพอร์ต เช่น วิ่ง เปลี่ยน :80 127.0.0.1:8080หรือดีกว่าใส่ลงในของคุณ inetd.conf. หากคุณไม่ต้องการให้ทราฟฟิกต้องผ่านกระบวนการอื่นอย่างสิ้นเปลือง คุณสามารถทำได้ด้วยวิธีเดียวกัน iptables การส่งต่อ (แต่นั่นยุ่งยากกว่า)

วิธีสร้างนามแฝงที่แท้จริงคือการใช้ a บันทึก SRV ในเซิร์ฟเวอร์ DNS ของคุณและนั่นจะทำงานได้ดีโดยไม่มีค่าใช้จ่าย แต่เนื่องจากประวัติ ระเบียน SRV จะถูกละเว้นสำหรับโปรโตคอล http/https.

cn flag
เป็นไปได้ว่าเขามีอย่างอื่นที่ทำงานบนพอร์ต 80 อยู่แล้ว มิฉะนั้นเขาคงไม่จำเป็นต้องใช้ 8080 สำหรับสิ่งนี้
Radovan Garabík avatar
na flag
@Barmar ใครจะรู้... ฉันเดาว่าน่าจะเป็นเว็บเฟรมเวิร์กบางประเภทที่เขาทำงานภายใต้บัญชีที่ไม่ใช่รูท แต่ถึงอย่างนั้น การตั้งค่านี้ยังคงเป็นไปได้หากเขามีอินเทอร์เฟซหลายตัว (พร้อมที่อยู่ IP แยกต่างหาก)
cn flag
คุณไม่ได้ตอบคำถามจริง ๆ คุณกำลังบอกว่าพวกเขาไม่จำเป็นต้องใช้พอร์ต 8080 ตั้งแต่แรก คำถามเกี่ยวกับการใช้ชื่อแทนหมายเลขสำหรับพอร์ต
Radovan Garabík avatar
na flag
@Barmar คุณพูดถูก... ฉันอ่านโคลอนเป็นจุดผิดพลาด ในกรณีนั้น ฉันเกรงว่าจะไม่มีโซลูชันเซิร์ฟเวอร์สำหรับความต้องการของ OP (ไม่มีพร็อกซีย้อนกลับ เป็นต้น)

โพสต์คำตอบ

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