Làm cách nào để hiển thị máy chủ web cục bộ từ internet * mà không * thiết lập chuyển tiếp cổng trên bộ định tuyến?


12

Tôi phát triển các trang web trên máy tính xách tay (cao cấp) của mình và tôi làm việc từ nhiều địa điểm khác nhau.

Tôi muốn lưu những rắc rối liên tục đồng bộ hóa với một máy chủ web bên ngoài có thể nhìn thấy để cho khách hàng để tiến thử nghiệm của trang web (hoặc cho các mục đích liên quan) .Do đó, tôi đang cố gắng tìm một cách để kích hoạt của tôi máy tính xách tay để được tự động công khai hiển thị từ internet, từ bất kỳ vị trí nào, ngay cả khi tôi không có quyền truy cập vào bộ định tuyến để thiết lập chuyển tiếp cổng (chẳng hạn như từ các cửa hàng cà phê hoặc từ các kết nối không dây công cộng khác).

Tôi đã sử dụng DynDNS để lựa chọn tên miền chuyển tiếp đến máy chủ để bàn thông qua bộ định tuyến mà tôi đã thiết lập ... nhưng như tôi nói, tôi muốn bỏ qua bước sử dụng máy chủ để bàn này.

Tôi đã hy vọng rằng các dịch vụ proxy ngược được trả tiền (tính phí hàng tháng cho tài khoản) sẽ cung cấp phần mềm "proxy ngược" cho máy khách / máy chủ cấp độ độc quyền có thể được sử dụng cho mục đích này. Tôi không thể tìm thấy một. Tôi đã sử dụng TeamViewer và LogMeIn, cung cấp các dịch vụ độc quyền tương tự. Trên thực tế, tôi đã cố gắng sử dụng LogMeIn Hamachi VPN để thực hiện điều này - bằng cách làm cho máy tính để bàn của tôi (đã hiển thị trên internet) chuyển tiếp lưu lượng IP yêu cầu cổng 80 dọc qua VPN đến máy tính xách tay của tôi. Tuy nhiên, dường như không thể thiết lập Hamachi / Windows như thế này (nhưng tôi có thể sai).

Tôi hy vọng có một cách đơn giản và mạnh mẽ để thực hiện điều này.


Bạn thực sự có thể thiết lập một máy chủ web cơ bản bằng trình duyệt web Opera (Opera unite), nhưng đây chỉ là giải pháp trong trường hợp ứng dụng HTML + JavaScript mà tôi tin là không phù hợp với nhu cầu của bạn.
jakub.g

Tôi hiện có một máy chủ web đang hoạt động - Apache (được thiết lập như một phần của XAMPP cho cài đặt Windows). Máy chủ web này hoạt động tốt và khi chạy trên máy tính để bàn của tôi phía sau bộ định tuyến cố định không có vấn đề gì khi nhìn thấy từ internet, vì tôi đã thiết lập chuyển tiếp cổng trên bộ định tuyến của mình. Tôi quan tâm đến việc tìm cách làm cho máy chủ web cục bộ của tôi hiển thị công khai từ internet khi tôi không có quyền truy cập vào bộ định tuyến để thiết lập chuyển tiếp cổng.
Dan Nissenbaum

Câu trả lời:


8

Nếu bạn có máy chủ, bạn có thể SSH đến và máy chủ đó cho phép bạn nghe trên các cổng có liên quan địa chỉ IP công cộng (nếu bạn điều khiển nó, có lẽ - thậm chí cả máy tính để bàn mà bạn mô tả nếu bạn cài đặt SSHd qua cygwin hoặc tương tự) bạn có thể sử dụng tùy chọn đường hầm của SSH để kéo lưu lượng truy cập đến máy chủ cục bộ của mình.

Một cái gì đó như: ssh root@your.server.tld -g -R 11.22.33.44:80:127.0.0.1:80sẽ, sau khi được kết nối và xác thực, tạo cổng 80 vào ngày 11,22.33.44 (giả sử đó là địa chỉ công cộng của máy chủ) lấy các kết nối sau đó được chuyển xuống cổng cục bộ 80. Bạn cần bật tùy chọn GatewayPorts trên máy chủ để nghe địa chỉ không phải localhost theo cách này và cần phải đăng nhập bằng root để nghe trên các cổng dưới 1024 và nếu đã có dịch vụ nghe trên cổng 80 thì rõ ràng bạn cần phải chọn một thứ khác. -CNên thêm tùy chọn để cho phép nén các luồng phát qua SSH, đặc biệt là nếu bạn kết nối máy tính xách tay qua mạng chậm (có lẽ bị kẹt ở giữa nơi chỉ có kết nối di động GPRS).

Để sử dụng ssh trên Windows, bạn có một vài tùy chọn. Bạn có thể cài đặt cổng của Cygwin [sau đó lệnh tôi đã đưa ra ở trên nên JustWork (tm)] hoặc sử dụng một số máy khách khác. PuTTY là một tùy chọn rất phổ biến và nó hỗ trợ đường hầm cổng từ xa.

Bằng cách này, máy chủ web của máy của bạn sẽ luôn có sẵn trên cùng một địa chỉ khi được kết nối, bất kể bạn kết nối từ đâu, do đó không cần sử dụng DNS động cho tên thân thiện với con người mà bạn có thể muốn gán (giả sử máy chủ bạn kết nối với có một địa chỉ công cộng cố định, tất nhiên).

Thay vì sử dụng máy chủ tại nhà hoặc văn phòng cho việc này, điều này có thể làm mọi thứ chậm hơn trừ khi bạn có kết nối nhanh ở cả hai hướng, bạn có thể nhận được kết quả tốt hơn bằng cách thuê VPS Linux nhỏ ở đâu đó (tốt nhất là ở cùng một quốc gia) Mục đích này. Bạn chỉ cần những máy nhỏ nhất miễn là có đủ băng thông, do đó, việc này sẽ chỉ tốn một vài hoặc vài đô la mỗi tháng.

Cũng như SSH, bạn cũng có thể xem xét một công cụ VPN như OpenVPN và sử dụng các quy tắc iptables đơn giản trên máy chủ để chuyển tiếp các kết nối xuống máy của bạn khi được kết nối. Điều này có thể hiệu quả hơn và ít rắc rối hơn khi thiết lập, nhưng có thể hơi rắc rối thêm khi định cấu hình nếu bạn chưa quen với nó và nói chung là định tuyến. Một lần nữa, VPS giá rẻ hoặc máy chủ văn phòng / nhà riêng của bạn sẽ hoạt động như máy chủ kết thúc VPN.


+1: Tôi vừa định đề xuất đường hầm ssh, nhưng bạn đã đánh bại tôi và giải thích nó rõ ràng hơn tôi sẽ có, để khởi động.
Dave Sherohman

Câu trả lời tuyệt vời, cảm ơn. Tôi đã có WinSSHD (từ Bitvise - một chương trình trả phí), vì vậy tôi sẽ có thể sử dụng nó. Tôi có thể thử sử dụng iptables để định tuyến dữ liệu (ban đầu khi nghĩ về điều này, tôi đã bối rối vì tôi biết rằng dữ liệu đang đến máy tính trên mạng cục bộ được chia sẻ với bộ định tuyến, nhưng không phải trên mạng cục bộ được chia sẻ với VPN - không phải điều này nên làm tôi bối rối). Bất cứ ai muốn đăng một ví dụ về mục nhập iptable cần thiết hoạt động với bộ định tuyến và truyền dữ liệu tới mạng VPN, sẽ được chào đón và đánh giá cao nhất!
Dan Nissenbaum

1

Đường hầm IPV6 trên máy tính xách tay, kết hợp với proxy ipv4 đến 6 - gogo6 có một dịch vụ miễn phí, đẹp mắt với một khách hàng để tự động hóa như một phần của freenet6 -. Kết hợp điều đó với bản ghi AAAA và proxy dịch từ ipv6 sang 4 ( Sixxs chạy công khai) hoặc cho một giải pháp thanh lịch hơn, máy chủ proxy của bạn ( polipo có thể hoạt động) dịch thuật chạy trên cùng một địa chỉ A

Thiết lập đúng cách, điều này sẽ chủ yếu là trong suốt, ngoài độ trễ nhẹ do bị dội lại rất nhiều lần.

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.