Điểm:4

có thể đặt bí danh cho một số cổng không?

lá cờ us

Tôi muốn chạy một dịch vụ trên một cổng tùy chỉnh (ví dụ: jenkins trên 8080) và tôi thích truy cập dịch vụ đó qua trình duyệt bằng tên mà tôi có thể nhớ, ví dụ: http://localhost:jenkins đó sẽ là một bí danh cho http://localhost:8080

  1. Là một điều như vậy có thể?
  2. Nếu vậy, nó sẽ chỉ là một thứ HTTP hay tất cả các giao thức mạng sẽ biết bí danh này?
  3. Ngoài ra, nếu (1) là đúng, thì tính năng này có được hỗ trợ trên hệ điều hành khác (centos, windows, v.v.) không?

Chỉnh sửa:

  1. Các phần chuyển động từ thời điểm tôi nhập địa chỉ cho đến khi nó được giải quyết là gì? Tôi đoán rằng trình phân tích cú pháp của trình duyệt và do đó có thể có một trình duyệt hỗ trợ yêu cầu của tôi. Sau đó, url được phân tích cú pháp có thể được chuyển đến một quy trình HĐH, quy trình này cũng có thể thực hiện yêu cầu của tôi và chấp nhận str thay vì int... Có bất kỳ phần nào trong số này có thể định cấu hình theo cách mà nó sẽ đáp ứng nhu cầu của tôi không?
TooTea avatar
lá cờ cn
Bạn cần cái này để làm việc ở đâu? Chỉ trên một số máy dưới sự kiểm soát của bạn? ("Máy chủ cục bộ" chỉ là một ví dụ hay điều này thực sự chỉ áp dụng cho một máy?)
lá cờ cn
WoJ
Nếu bạn quyết định ủy quyền theo các câu trả lời khác, hãy dùng thử Caddy (https://caddyserver.com/) để thực hiện việc này rất dễ dàng.
Aaron F avatar
lá cờ cn
Bạn có thể thử [thêm trình xử lý giao thức tùy chỉnh](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler#example). Nó có thể không hoạt động tốt cho trường hợp sử dụng của bạn, nhưng đó là thứ bạn có thể dễ dàng thử trong vài phút.
chrylis -cautiouslyoptimistic- avatar
lá cờ er
Khái niệm _well-known port_ rất quan trọng ở đây.
Điểm:7
lá cờ vn

Điều này có thể được giải quyết bằng "reverse proxying" - vì vậy hãy nghiên cứu về lĩnh vực này một chút.

Nó không thể làm những gì bạn thực sự yêu cầu (bí danh là số cổng), nhưng nó có thể cung cấp cho bạn một cách khác để tạo đường dẫn dễ dàng cho từng dịch vụ (bằng cách chuyển tiếp các bản ghi DNS tới một IP và cổng cụ thể).

Về cơ bản, những gì bạn có thể làm với proxy ngược là:

  • Đảm bảo tất cả các trang web của bạn có chứng chỉ SSL và (nếu bạn chọn) thực thi HTTPS trong trường hợp này
  • Bản đồ http://localhost:8080 đến https://jenkins.local (cảng phía trước)
  • Bản đồ http://localhost/jenkins đến https://jenkins.local (vị trí phía trước)

Ở trên hoạt động với cả giải quyết DNS bên trong và bên ngoài

Cá nhân tôi đang sử dụng Trình quản lý proxy Nginx, nhưng Traefik cũng là một lựa chọn phổ biến.

Để có ý tưởng về những gì cần thiết lập, Nginx Proxy Manager trông như thế này:

nhập mô tả hình ảnh ở đây

lá cờ cn
WoJ
Sử dụng HTTPS không phải là điều kiện tiên quyết để đảo ngược ủy quyền. Tuy nhiên, đó có thể là một ý kiến ​​​​hay (vì nhiều lý do, bảo mật là một trong số đó - nhưng YMMV)
Artur Meinild avatar
lá cờ vn
Đồng ý - nhưng tôi không tin rằng tôi đã từng nói đó là điều kiện tiên quyết - tôi đưa ra nó như một ví dụ về những gì bạn có thể làm. Tuy nhiên, tôi thực sự không thấy lý do nào vào năm 2021 để không sử dụng HTTPS khi có thể, vì vậy bạn có thể nói rằng tôi cho rằng hầu hết mọi người đều muốn sử dụng nó.
lá cờ cn
WoJ
Chà, điểm đầu tiên của bạn nói rằng "đảm bảo" và "thực thi". Trong mọi trường hợp, quyết định sử dụng hay không HTTPS tùy thuộc vào quản trị viên, tôi chỉ muốn nhấn mạnh rằng đây không phải là điều bạn phải làm. Có rất nhiều trường hợp sử dụng HTTP dễ dàng hơn (và vẫn an toàn).
lá cờ mx
Nói rõ hơn, vì nó không rõ ràng nếu không đọc các câu trả lời khác: điều này thực sự không làm * hoàn toàn * những gì người hỏi đã hỏi (đó là sử dụng tên tượng trưng cho số cổng), nhưng điều đó thực sự không khả thi, và đây là điều *gần nhất* hoạt động và giải quyết vấn đề cơ bản.
Artur Meinild avatar
lá cờ vn
Tôi đồng ý. Tôi đã cố gắng đưa ra giải pháp cho vấn đề cơ bản, như OP tuyên bố: "... và tôi muốn truy cập nó qua trình duyệt bằng một cái tên mà tôi có thể nhớ". Tôi đã chỉnh sửa câu trả lời của mình để phản ánh điều này.
Điểm:4
lá cờ ng

Từ rfc 1738 https://datatracker.ietf.org/doc/html/rfc1738#section-3.1

cổng trong url là một số

Hải cảng

    Số cổng để kết nối. Hầu hết các chương trình chỉ định
    các giao thức có số cổng mặc định. Số cổng khác
    có thể được cung cấp tùy chọn, ở dạng thập phân, tách biệt với
    chủ bởi dấu hai chấm. Nếu cổng bị bỏ qua, dấu hai chấm cũng vậy.
Điểm:3
lá cờ us

Có thể sử dụng các giải pháp như Nginx, Apache, mực, lighthttpd, v.v. Xin lưu ý rằng những thứ này sẽ ánh xạ cổng của bạn tới bất kỳ tên nào bạn đặt nhưng nó sẽ là một cái gì đó độc lập với máy chủ cục bộ bên trong. Bạn có thể sử dụng phần mềm này trong Linux và các hệ thống dựa trên cửa sổ.

Đây là một ví dụ apache.

Nghe IP_ADDR:80
TênVirtualHost IP_ADDR:80

<Máy chủ ảo IP_ADDR:80>
  Tên máy chủtên bạn.tên miền của bạn

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

</Máy chủ ảo>

Một giải pháp khác, nếu bạn muốn giữ cho các máy chủ dễ nhớ, là cung cấp cho Jenkins một IP khác bằng cách chạy nó trên một máy chủ khác và sau đó ánh xạ nó vào /etc/hosts như 192.168.1.1 Jenkins (Về cơ bản, bạn thêm phần này vào tệp). Sau khi làm điều này, giả sử Jenkins của bạn đang chạy 192.168.1.1:3000 bạn có thể truy cập nó bằng cách http://jenkins:3000.

Ngay cả khi bạn làm điều này, tất cả các giao thức mạng sẽ không hoạt động, bạn sẽ không thể truy cập Jenkins bằng https://jenkins:3000.

Hi vọng điêu nay co ich!!

CIsForCookies avatar
lá cờ us
Tôi đã có bí danh IP bằng cách sử dụng `etc/hosts` vì vậy tôi cũng hy vọng có giải pháp tương tự cho các cổng :) Cảm ơn!
Guntram Blohm avatar
lá cờ cn
Có /etc/services, nhưng các trình duyệt thường không sử dụng nó và ngay cả khi có, bạn cần triển khai trên máy khách chứ không phải máy chủ.
Điểm:0
lá cờ na

Có lẽ giải pháp đơn giản nhất là sử dụng chuyển hướng để chuyển hướng các cổng, ví dụ: chạy chuyển hướng :80 127.0.0.1:8080, hoặc thậm chí tốt hơn đặt nó vào của bạn inetd.conf. Nếu bạn không thích lưu lượng truy cập đi qua một quy trình khác một cách lãng phí, bạn có thể đạt được điều tương tự bằng cách sử dụng iptables chuyển tiếp (nhưng điều đó phức tạp hơn).

Cách thực sự để tạo bí danh sẽ là sử dụng một kỷ lục CHXHCNVN trong máy chủ DNS của bạn và điều đó sẽ hoạt động tốt mà không tốn chi phí, nhưng do lịch sử, Bản ghi SRV bị bỏ qua đối với giao thức http/https.

lá cờ cn
Có lẽ anh ấy đã có thứ gì đó khác chạy trên cổng 80 hoặc anh ấy sẽ không cần sử dụng 8080 cho việc này.
Radovan Garabík avatar
lá cờ na
@Barmar ai biết được... Tôi đoán nhiều khả năng đó là một loại khung web nào đó mà anh ấy chạy bằng tài khoản không phải root. Nhưng ngay cả như vậy, thiết lập này vẫn có thể thực hiện được nếu anh ta có sẵn nhiều giao diện (với các địa chỉ IP riêng biệt).
lá cờ cn
bạn không thực sự trả lời câu hỏi, bạn đang nói rằng ngay từ đầu họ không cần sử dụng cổng 8080. Câu hỏi chỉ là về việc sử dụng tên thay vì số cho cổng.
Radovan Garabík avatar
lá cờ na
@Barmar bạn nói đúng... Tôi đọc nhầm dấu hai chấm thành dấu chấm. Trong trường hợp đó, tôi e rằng không có giải pháp máy chủ nào đáp ứng yêu cầu của OP (không có proxy ngược, v.v.)

Đă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.