it-swarm-vi.tech

Tôi có thể chỉ định một cổng trong một mục trong / etc / hosts trên OS X không?

Có thể trùng lặp:
[.__.] Cách sử dụng DNS để chuyển hướng tên miền đến cổng cụ thể trên máy chủ của tôi

Tôi muốn lừa trình duyệt của mình để truy cập localhost: 3000 thay vì xyz.com. Tôi đã đi vào/etc/hosts trên OS X 10.5 và thêm mục sau:

127.0.0.1:3000 xyz.com

Điều đó không hoạt động nhưng không chỉ định cổng, thủ thuật hoạt động. Có cách nào để làm điều này chỉ định cổng?

51
Tony

Không, tệp máy chủ chỉ đơn giản là một cách để giải quyết tĩnh tên khi không có máy chủ DNS.

47
Chief A-G

Các tập tin máy chủ là cho độ phân giải DNS. DNS tôi phân giải tên thành địa chỉ IP và không liên quan gì đến cổng. Bạn sẽ cần sử dụng một cái gì đó khác kết hợp với tệp máy chủ để chuyển hướng cổng (Mangle tiêu đề TCP bằng cách thay đổi cổng đích).

Với iptables :
[.___.] Hệ điều hành MAC có sử dụng iptables/netfilter không (tôi không nghĩ là nó đã làm) ..? Nếu OS X sử dụng iptables, bạn có thể trỏ xyz.com tới một số ip trong tệp máy chủ như 157.166.226.25 và sau đó:

Sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -d 157.166.226.25 -j DNAT --to-destination 127.0.0.1:3000

:-)

45
Kyle Brandt

Bạn không cần chỉ định một cổng trong tệp máy chủ. chỉ cần thực hiện mục nhập như bạn đã bỏ qua cổng, như trong 127.0.0.1 xyz.com, điều này sẽ hướng bạn đến Máy chủ lưu trữ cục bộ của bạn, sau đó chỉ cần thêm cổng 3000 vào cuối URL của bạn ... http://xyz.com:30

12
stuart Brand

Giả sử bạn đang cố gắng chặn http chứ không phải https, bạn phải nghe cổng 80 trên máy cục bộ của mình, nhưng sau đó bạn có thể sử dụng các tính năng chuyển tiếp cổng của ssh bằng cách ssh'ing vào localhost với -L80:localhost:3000, nhưng bạn sẽ phải làm điều đó với quyền root.

Có lẽ sẽ tốt hơn nếu có bất cứ thứ gì đang chạy trên cổng 3000 thay vào đó chỉ cần nghe cổng 80.

Nếu bạn điều khiển bộ định tuyến giữa bạn và xyz.com, bạn có thể thiết lập quy tắc chuyển tiếp cổng thay thế.

4
retracile

Giải pháp DNS cho việc này là sử dụng các bản ghi SRV:

http://en.wikipedia.org/wiki/SRV_record

Đây là một cách để cho phép DNS, ban đầu là "tên thành số" hoặc "số thành tên" cơ sở dữ liệu phân tán để bao gồm "tên cho điểm cuối dịch vụ", có thể (tùy chọn) bao gồm một giao thức và cổng.

Tin xấu là các ứng dụng phải được phát triển để sử dụng các bản ghi SRV, vì vậy đây không phải là giải pháp thả xuống cho những gì bạn đang cố gắng thực hiện.

3
James F

Tôi nghĩ rằng bạn cần sử dụng một số loại máy chủ proxy hoặc có thể một cái gì đó với phần mềm tường lửa để chuyển hướng kết nối cổng ...

2
Bart Silverstrim

Chief-AG đúng ở chỗ tệp máy chủ được sử dụng để phân giải tĩnh tên (sự hiện diện của DNS là không liên quan). Tuy nhiên, có thể có sự kết hợp của những điều bạn có thể làm.

  1. Đặt bản ghi trong tệp máy chủ thành 127.0.0.1 xyz.com
  2. Định cấu hình máy của bạn cho máy chủ ảo .
  3. Đối với Máy chủ ảo bạn thiết lập cho xyz.com, hãy tạo tệp html chuyển hướng đến localhost: 3000

Có vẻ là một chút công việc, nhưng nó sẽ hoàn thành những gì bạn yêu cầu.

2
Forgotten Semicolon

tôi giả sử đây là cho Rails phát triển? nếu vậy, hãy chạy script/server -p 80 để làm cho nó chạy trên cổng web chuẩn. sau đó xyz.com của bạn sẽ hoạt động

1
Ryan

Thay thế cho các máy chủ ảo của, bạn có thể tạo một đường hầm ssh lắng nghe trên cổng 80 và chuyển tiếp đến localhost: 3000.

1
evilchili

Nếu bạn đang sử dụng Apache làm máy chủ web trên xyz.com, bạn có thể sử dụng Apache ProxyPass để 'chuyển đổi' sang một cổng khác.

0
Rory