Я на OS X El Capitain 10.11.5.
Попытка запустить веб-сервер локально и предоставить доступ откуда-то извне.
Для того, чтобы получить доступ к Интернету, я использую точку доступа Wi-Fi.
Брандмауэр недоступен на моем компьютере Mac.

Ifconfig

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=3<RXCSUM,TXCSUM>
    inet6 ::1 prefixlen 128 
    inet 127.0.0.1 netmask 0xff000000 
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
    nd6 options=1<PERFORMNUD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether f4:5c:89:90:96:7d 
    inet6 fe80::f65c:89ff:fe90:967d%en0 prefixlen 64 scopeid 0x4 
    inet 10.37.44.92 netmask 0xfffffc00 broadcast 10.37.47.255
    nd6 options=1<PERFORMNUD>
    media: autoselect
    status: active
en1: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
    options=60<TSO4,TSO6>
    ether 6a:00:01:80:39:90 
    media: autoselect <full-duplex>
    status: inactive
en2: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
    options=60<TSO4,TSO6>
    ether 6a:00:01:80:39:91 
    media: autoselect <full-duplex>
    status: inactive
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
    ether 06:5c:89:90:96:7d 
    media: autoselect
    status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
    ether 9a:46:fc:f3:8c:a2 
    inet6 fe80::9846:fcff:fef3:8ca2%awdl0 prefixlen 64 scopeid 0x8 
    nd6 options=1<PERFORMNUD>
    media: autoselect
    status: active
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=63<RXCSUM,TXCSUM,TSO4,TSO6>
    ether f6:5c:89:09:14:00 
    Configuration:
        id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
        maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
        root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
        ipfilter disabled flags 0x2
    member: en1 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 5 priority 0 path cost 0
    member: en2 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 6 priority 0 path cost 0
    nd6 options=1<PERFORMNUD>
    media: <unknown type>
    status: inactive
vboxnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    ether 0a:00:27:00:00:00 
    inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255

Как вы можете видеть, мой IP-адрес в сети Wi-Fi: 10.37.44.92.

В то же время Google показывает, что мой публичный IP-адрес 77.88.196.39

Вот как я запускаю веб-сервер:

dmac:solidus-sample dob$ rails s -p 3001
=> Booting WEBrick
=> Rails 4.2.7 application starting in development on http://localhost:3001
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-08-09 15:32:15] INFO  WEBrick 1.3.1
[2016-08-09 15:32:15] INFO  ruby 2.2.4 (2015-12-16) [x86_64-darwin15]
[2016-08-09 15:32:15] INFO  WEBrick::HTTPServer#start: pid=16366 port=3001

Я хотел бы получить доступ к своему веб-серверу по адресу http://77.88.196.39:3001. Но сейчас это не доступно, хотя.

Что я сделал?

Когда я запускаю веб-сервер таким образом (ключ -b означает привязку):

rails s -p 3001 -b 10.37.44.92

Я могу получить доступ к http://10.37.44.92:3001 с любого компьютера в той же сети Wi-Fi.

Но нет успешного доступа к веб-серверу из Интернета.
Благодарю.

1 ответ1

1

Я думаю, что вам нужен порт вперед, чтобы быть жизнеспособным снаружи. Например, ваш адрес: 192.168.1.21, и вы хотите предоставить свой веб-сервер снаружи, вам нужно проверить ваш публичный IP, в вашем случае это 77.88.196.39. Так что для открытого Интернета вы должны открыть порт 80 на вашем маршрутизаторе. Вам нужно перейти в окно поиска настроек маршрутизатора с переадресацией портов или что-то вроде этого. Затем добавьте локальный адрес 192.168.1.21, добавьте порт 80 и нажмите «Сохранить». Теперь ваш веб должен быть жизнеспособным снаружи. Если у вас нет доступа к маршрутизатору, свяжитесь с вашим сетевым администратором.

В вашем случае, вы должны открыть 3001 порт на маршрутизаторе

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .