![Предоставить доступ к моей локальной компьютерной форме снаружи](https://rvso.com/image/1502877/%D0%9F%D1%80%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%20%D0%BA%20%D0%BC%D0%BE%D0%B5%D0%B9%20%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9%20%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%BE%D0%B9%20%D1%84%D0%BE%D1%80%D0%BC%D0%B5%20%D1%81%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B8.png)
Я использую 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
Я думаю, вам нужно переадресовать порт, чтобы быть жизнеспособным снаружи. Например, ваш адрес:192.168.1.21и вы хотите разместить свой веб-сервер снаружи, вам нужно проверить свой публичный IP, в вашем случае это77.88.196.39.Итак, для открытого веба вы должны открытьпорт 80на вашем роутере. Вам нужно зайти в настройки роутера, найти окно с переадресацией портов или что-то вроде того. И затем введите свой локальный адрес192.168.1.21и добавьте порт 80 и нажмите сохранить. Теперь ваш веб должен быть работоспособен снаружи. Если у вас нет доступа к маршрутизатору, свяжитесь с вашим сетевым администратором.
В вашем случае вам необходимо открыть порт 3001 на маршрутизаторе.