Kết nối với Máy chủ Jekyll được xây dựng cục bộ bằng các thiết bị di động trong mạng LAN


89

Sau khi sử dụng jekyll servetrên một máy, một máy chủ WEBrick được thiết lập và trang web có thể được truy cập từ localhost:4000trên PC cụ thể này.

Tuy nhiên, tôi đang băn khoăn không biết làm cách nào để truy cập máy chủ web này từ các máy khác trong mạng LAN, đặc biệt là đối với thiết bị di động? Tôi đang cố gắng kiểm tra trang web jekyll trên thiết bị di động trước khi đẩy mã lên Github.

Câu trả lời:


188

Hãy thử jekyll serve --host=0.0.0.0khi bạn gọi Jekyll trên dòng lệnh.

Điều đó sẽ làm cho máy chủ HTTP của Jekyll liên kết với tất cả các IP có sẵn, thay vì chỉ với localhost.

Bạn cũng có thể thêm cái này vào của bạn _config.ymlvới host: 0.0.0.0. GitHub sẽ đơn giản bỏ qua điều này khi bạn đẩy, vì vậy có thể sử dụng an toàn nếu bạn không ngại khi công việc của mình có thể truy cập công khai trên mạng của mình.


Nếu không có --host=0.0.0.0Jekyll sẽ xuất ra một thứ như thế này khi bạn khởi động:

$ jekyll serve
[...]
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.

Nhưng với --host=0.0.0.0(hoặc host: 0.0.0.0trong _config.yml), bạn sẽ nhận thấy rằng nó đang nghe trên tất cả các giao diện (được đại diện bởi 0.0.0.0) thay vì chỉ nghe trên giao diện loopback (được đại diện bởi 127.0.0.1)

$ jekyll serve --host=0.0.0.0
[...]
Server address: http://0.0.0.0:4000/
Server running... press ctrl-c to stop. 

Nếu bạn vẫn không thể truy cập vào máy chủ của mình thì có thể có một bức tường lửa ngăn nó. Tạm thời vô hiệu hóa tường lửa của bạn hoặc thêm quy tắc chuyển tiếp cổng cho cổng 4000.


Khi Jekyll đang lắng nghe thích hợp trên tất cả các giao diện, bạn có thể truy cập điều này từ thiết bị di động của mình bằng địa chỉ IP LAN của bạn (được truy xuất từ ​​một cái gì đó tương tự ifconfighoặc ipconfigtùy thuộc vào hệ điều hành của bạn).


3
Phần đầu tiên hoạt động như được chỉ ra (jekyll 2.5.3), không kiểm tra phần thứ hai (về mục nhập trong tệp cấu hình).
j4v1

7
Để sau đó truy cập trang web của bạn, trên máy tính / thiết bị di động khác của bạn, hãy nhập ip của máy tính đang lưu trữ. (Một cái gì đó có thể giống như 192.168.1.5:4000). Và đây là một cách để tìm ip của bạn: stackoverflow.com/a/13322549/1400991
Ross R

Nếu bạn đang cố gắng chạy một máy chủ trên Chromebook trong Crouton, bạn cũng sẽ phải chạy /sbin/iptables -P INPUT ACCEPTđể mở tường lửa. Tùy chọn thêm dòng này vào /etc/rc.localnếu bạn muốn tường lửa được mở theo mặc định khi bạn nhập chroot. Xem thêm hướng dẫn chính thức .
Alex Yursha

1
nhưng nó bị rơi tất cả hình ảnh với {{site.url}} vì họ đang trỏ đến http: 0.0.0.0: 4000 mà không được mở trong máy chính
GorvGoyl

1
Điều này không trả lời đầy đủ câu hỏi, địa chỉ để sử dụng là gì? localhost: 4000 hoặc 0.0.0.0:4000 hoặc cái gì khác?
Andy

-8

Giả sử thiết bị di động của bạn được kết nối với cùng một mạng LAN như máy phát triển của bạn.

  1. Đảm bảo địa chỉ IP LAN của máy phát triển của bạn. Thường là: 192.168.0.XXX. Trong đó .XXX là 3 chữ số cuối duy nhất của IP LAN của máy phát triển của bạn.

  2. Trỏ trình duyệt web trên thiết bị di động của bạn tới: http://192.168.0.XXX:4000

Đó là cách tôi thực hiện trên máy tính xách tay và iPhone của mình cho nhà phát triển Jekyll.


2
Tôi có cần chỉ định --host=0.0.0.0khi khởi động máy chủ không? (Tôi không thể kiểm tra nó vào lúc này.)
Yi Zeng

@ user1177636, nope, không cần thiết, chỉ cần jekyll serve. Điều đó sẽ khởi chạy máy chủ WebBrick sẽ có sẵn trên bất kỳ thiết bị hoặc máy cục bộ nào. BTW, tôi giả sử bạn đang chạy Jekyll> = 1.0.0, các lệnh khác nhau đối với các phiên bản cũ hơn. Chạy jekyll --servernếu sử dụng <= 0.12.1.
JW

Bằng cách nào đó nó không hoạt động đối với tôi mà không chỉ định --host = 0.0.0.0. Bạn đã sử dụng cài đặt Tường lửa nào để khắc phục sự cố đó?
skjoshi

2
Đối với tôi, chạy jekyll servekhông có tác dụng. Thiết bị di động của tôi không thể truy cập vào máy chủ trừ khi tôi đổ chuông jekyll serve --host=0.0.0.0. Bất cứ ai có một lời giải thích cho điều này?
lịch thi đấu

2
@fraxture jekyll phục vụ theo mặc định lắng nghe trên localhost (127.0.0.1) nó chỉ có thể truy cập được thông qua bộ điều hợp lặp lại trên máy mà nó đang chạy. bằng cách yêu cầu nó liên kết với 0.0.0.0, bạn đang yêu cầu nó liên kết với tất cả các giao diện và do đó nó liên kết với giao diện (ethernet / wireless / etc ..) của bạn và do đó cũng có thể truy cập được qua phía lan.
Doon
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.