Cách tạo cổng chuyển tiếp trong Mac OS X


36

Tôi muốn thực hiện tất cả các kết nối đến cổng 1000 của máy chủ của mình (IP: 200.234.XXX.XXX) để chuyển tiếp đến cổng 80 trên máy chủ 10.211.55.5

Làm thế nào tôi có thể làm điều đó trên máy chủ của tôi? Nó đang chạy Mac OS X 10.5.8


ah, bạn cũng đang chạy song song, có cùng một vấn đề như tôi? :)
LearnCocos2D

Câu trả lời:


30

Khá đơn giản để thực hiện, Trước tiên, bạn sẽ cần kích hoạt dịch vụ đăng nhập từ xa trên máy mac ( Tùy chọn hệ thống -> Chia sẻ -> Đăng nhập từ xa ). Điều này bắt đầu máy chủ ssh của bạn.

Sau đó chạy lệnh sau trong OS X Terminal của bạn:

ssh -L 200.234.XXX.XXX:10000:10.211.55.5:80 -N 127.0.0.1

Bạn có thể cần chấp nhận dấu vân tay của máy chủ ban đầu cũng như nhập mật khẩu cục bộ để đăng nhập ssh. (Bạn cũng có thể thiết lập khóa công khai / riêng ssh cục bộ để làm cho nó không nhắc mật khẩu, sẽ để lại như một bài tập cho người đọc.)

Định dạng là:

ssh -L local_addr:local_port:remote_addr:remote_port -N 127.0.0.1

Chúng tôi có thể làm điều đó nếu cổng 22 không mở?
Afshin Moazami

1
Bạn cần kết nối bằng cách nào đó. Nhưng bạn luôn có thể chạy ssh trên một cổng khác ... có lẽ là cổng http? hoặc cổng BIND (DNS)? Những người chủ yếu mở trên tường lửa.
Marius

10

Rất đơn giản bằng cách sử dụng công cụ đa năng ncat:

sudo ncat --sh-exec "ncat 10.211.55.5 80" -l 1000 --keep-open

Nhận các tệp nhị phân của ncat / nmap cho Mac OS X từ trang web chính thức: http://nmap.org/doad.html#macosx

EDIT: đã thêm sudo để nghe trên một cổng bị hạn chế <1024


1
cảm ơn. nó rất đơn giản bên cạnh đó không cần phải khởi động lại!
Verystrongjoe

Ngoài ra, bạn không cần phải khởi động máy chủ SSH trên macOS của mình.
Tony Baguette

5

Giả sử bạn có bộ định tuyến UPnP, việc cấu hình các cổng dễ dàng bằng cách sử dụng PortMap

Nó có một giao diện người dùng rất đơn giản.

văn bản thay thế


tại sao hình ảnh của bạn rất nhỏ
barlop

3

Chà, tôi có thể nói cho bạn biết tôi làm điều đó như thế nào trên hệ thống Mac OS X 10.5.8 của tôi.

Tôi đã bắt đầu trả lời về NAT, nhưng tôi nghĩ rằng bạn thực sự muốn có một chương trình chuyển tiếp TCP thay thế (bạn đề cập đến 'proxy' và chuyển tiếp cổng.)

Có một số cách để thực hiện việc này, tùy theo nhu cầu của bạn, thậm chí 'SSH' có thể được áp dụng, mặc dù cách ngắn gọn và ngọt ngào yêu thích của tôi là tập lệnh Perl tcpforward .

Nếu bạn cần một số thao tác HTTP (bạn có thể cần phải điều chỉnh chuyển hướng HTTP, để khi yêu cầu đến URL mà không có dấu vết '/' bạn không được chuyển hướng đến máy chủ thực, không thể truy cập), thì Apache có thể thực hiện công việc của một proxy ngược. Bạn sẽ muốn xem mod_proxy và cụ thể là ProxyPass và ProxyPassReverse. làm không cho phép ProxyRequests, đó là proxy phía trước. Có thể sử dụng Apache của Mac OS để làm điều này, nếu bạn đã chạy nó. Nó đi kèm với mod_proxy và /etc/httpd/httpd.conf là tệp cấu hình để cập nhật.

Ngay cả với Apache, bạn cần đảm bảo rằng tất cả các liên kết trong nội dung của máy chủ thực là tương đối, nếu chúng tham chiếu máy chủ thực thì bạn có thể thử mô-đun mod_proxy_html (Tôi không có kinh nghiệm về việc nó hoạt động tốt như thế nào.)


+1 cho tcpforward, Perl không bao giờ ngừng hữu ích.
Steve Kehlet

0

Máy của bạn có được kết nối trực tiếp với internet (IE - không có bộ định tuyến) không? Thông thường bạn thực hiện chuyển tiếp cổng trên bộ định tuyến, nhưng nếu bạn sử dụng modem để kết nối trực tiếp, iptables có lẽ là cách tốt nhất.


Tôi không biết tại sao điều này đã được bỏ phiếu vì đó là sự thật.
Hasaan Chop

4
@HasaanChop Điều này bị hạ cấp vì nó không hữu ích. Nếu nó chi tiết chính xác cách sử dụng iptablesđể thực hiện những gì câu hỏi đã hỏi, điều đó có thể hữu ích.
Jon-Eric

Không có iptables trên mac os x.
Chưa đặt tên_1

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.