chuyển tiếp cổng trong windows


262

Tôi có hai bảng mạng trong máy tính của mình:

Cái chính có ip cục bộ -> 192.168.1.111 Những cái phụ có ip cục bộ -> 192.168.0.200

Thiết bị chính có kết nối internet và thiết bị thứ hai được kết nối với thiết bị có IP 192.168.0.33, thiết bị này có máy chủ http ở cổng 80.

Tôi có một máy chủ apache trong kết nối chính (cổng 4422) và tôi có thể truy cập từ bất cứ đâu, điều tôi muốn bây giờ là khi tôi phát hiện ra một kết nối từ 4422 tôi muốn chuyển hướng kết nối này đến 192.168.2.33:80

Làm thế nào tôi có thể làm điều này với các cửa sổ?


Thông tin chi tiết có thể được tìm thấy ở đây. technet.microsoft.com/en-us/l Library / cc731068 (v = ws.10) .aspx
Shankar Damodaran

Câu trả lời:


507

Tôi đã giải quyết nó, nó có thể được thực hiện:

netsh interface portproxy add v4tov4 listenport=4422 listenaddress=192.168.1.111 connectport=80 connectaddress=192.168.0.33

Để xóa chuyển tiếp:

netsh interface portproxy delete v4tov4 listenport=4422 listenaddress=192.168.1.111

Tài liệu chính thức


21
Chỉ cần chắc chắn để cài đặt IPv6. Theo bài viết MS KB này , Netsh cần một số thư viện IPv6 để định cấu hình tính năng proxy cổng.
Renan Mozone

10
Ngoài ra, bạn có thể dọn dẹp bằng cách sử dụng netsh interface portproxy resethoặc netsh interface portproxy delete
patrikbeno

7
Tôi đã thử sử dụng kỹ thuật này, và trong khi nó hoạt động, nó cực kỳ chậm. Thay thế. Tôi đã tìm thấy một tiện ích có tên PassPort ( sourceforge.net/projects/pjs-passport ) thực hiện cùng loại chuyển tiếp cổng bị ràng buộc với một NIC cụ thể, nhưng không có vấn đề về hiệu năng netsh. Nó cài đặt và chạy tốt trên Win2008SvrR2.
James L.

14
Lệnh trên không hoạt động với tôi trên Windows7 cũng như trên Windows Server 2003. Tôi cũng phải chỉ định tham số Protocol = tcp . Lệnh đầy đủ:netsh interface portproxy add v4tov4 listenport=4422 listenaddress=192.168.1.111 connectport=80 connectaddress=192.168.0.33 protocol=tcp
alwi

3
LƯU Ý rằng điều này chỉ hoạt động trên TCP , vì vậy không may mắn nếu bạn muốn chuyển tiếp lưu lượng UDP.
dùng276648

14

nginx rất hữu ích để chuyển tiếp HTTP trên nhiều nền tảng bao gồm cả Windows. Thật dễ dàng để thiết lập và mở rộng với cấu hình nâng cao hơn. Một cấu hình cơ bản có thể trông giống như thế này:

events {}

http {
     server {

        listen 192.168.1.111:4422;

        location / {
            proxy_pass http://192.168.2.33:80/;
        }
     }
}

14
Đây là một giải pháp tốt để chuyển tiếp HTTP, nhưng chỉ để chuyển tiếp HTTP (với tất cả các cảnh báo của nó, ví dụ như websockets cần cấu hình bổ sung). Đối với chuyển tiếp HTTPS hoặc các giao thức tùy ý khác (ví dụ RDP), nó hầu như vô dụng.
Uli Köhler

2
Điều đó nói rằng, đó là một giải pháp cực kỳ tốt để chuyển tiếp HTTP, vì vậy tôi rất vui vì nó ở đây.
Casey

Tại sao vậy? Bạn có thể truyền phát bất cứ điều gì bạn thích, bao gồm https
user1156544

@uli cài đặt nào bạn chấp nhận ... Sẽ rất hữu ích khi chia sẻ
user3787216

1
@ UliKöhler Nginx là một công cụ để tách các kết nối TCP. Bạn có thể sử dụng nó cho HTTP, HTTPS, AMQP, WebSockets, bất cứ điều gì. Nó được sử dụng nội bộ bởi các công cụ trên toàn bộ để chuyển hướng và quản lý kết nối TCP chung. Vì vậy, đây là giải pháp chính xác. Xem thêm netfxharmonics.com/2016/03/nginx
David Betz

1

Tôi đã sử dụng tiện ích nhỏ này bất cứ khi nào có nhu cầu: http://www.analogx.com/contents/doad/network/pmapper/freeware.htmlm

Lần cuối cùng tiện ích này được cập nhật là vào năm 2009. Tôi nhận thấy trên máy Win10 của mình, nó bị treo trong vài giây khi thỉnh thoảng mở các cửa sổ mới. Khác thì UI đó trục trặc, nó vẫn hoạt động tốt.

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.