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
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
Câu trả lời:
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
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
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.)
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.
iptables
để thực hiện những gì câu hỏi đã hỏi, điều đó có thể hữu ích.
Đây là một bài viết tốt: http://www.cyberhq.nl/article/384/port-forwarding-in-macos-x
Nhưng vì bạn đang chuyển tiếp tới 80 nên tôi cho rằng bạn muốn nó đến máy chủ web nên tôi sẽ thay đổi cấu hình máy chủ web để thiết lập proxy ngược hoặc đại loại như thế.