# Как открыть доступ через внутренний IP?

**URL:** https://meta.discourse.org/t/how-to-open-via-internal-ip/170456
**Category:** Self-hosting
**Created:** [18.Ноябрь.2020 08:49:11 UTC](https://meta.discourse.org/t/how-to-open-via-internal-ip/170456 "2020-11-18T08:49:11Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![chiehpower](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chiehpower/32/200361_2.png) [@chiehpower](https://meta.discourse.org/u/chiehpower)
#### Post date: [18.Ноябрь.2020 08:49:11 UTC](https://meta.discourse.org/t/how-to-open-via-internal-ip/170456/1 "2020-11-18T08:49:11Z")

</div>

Уважаемые эксперты,

Я очень ценю ваш вклад!!

На данный момент мне удалось успешно собрать Discourse на локальном компьютере, и я могу открыть его по адресу `localhost:3000`. Это замечательно: можно создавать темы, публиковать сообщения и т. д.

В основном я следовал руководству [отсюда](https://meta.discourse.org/t/beginners-guide-to-install-discourse-on-ubuntu-for-development/14727). Это действительно здорово!

**Однако я не могу открыть форум по моему внутреннему IP-адресу (то есть локальному адресу в сети). Например, 10.1.2.139 (что-то вроде этого). Я хочу иметь возможность открывать этот форум на других устройствах (например, на своём ноутбуке).**

# Воспроизведение

Получите скрипт bash (install\_discourse.sh) отсюда: [install-rails/linux at main · discourse/install-rails · GitHub](https://github.com/techAPJ/install-rails/blob/master/linux)

```plaintext
chmod +x install_discourse.sh
sudo ./install_discourse.sh

git clone https://github.com/discourse/discourse.git ~/discourse
sudo -u postgres createuser -s "$USER"
cd ~/discourse

source ~/.bashrc
bundle install

bundle exec rake db:create 
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate

bundle exec rake autospec (здесь могут возникнуть ошибки.)

```

### Запуск сервера:

```plaintext
bundle exec rails server
или
bundle exec rails server --binding=0.0.0.0

```

### Создание администратора

```plaintext
RAILS_ENV=development bundle exec rake admin:create

```

### Настройка почты

```plaintext
mailcatcher --http-ip 0.0.0.0

```

**Есть ли какие-либо рекомендации по доступу через локальный IP-адрес?**  
Большое спасибо.

С уважением,  
Чие

---

<div class="post-metadata">

### Author: ![simonk](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simonk/32/247950_2.png) [@simonk](https://meta.discourse.org/u/simonk)
#### Post date: [18.Ноябрь.2020 10:22:03 UTC](https://meta.discourse.org/t/how-to-open-via-internal-ip/170456/2 "2020-11-18T10:22:03Z")

</div>

Какую команду вы использовали для запуска сервера? Вам нужно использовать эту:

```
bundle exec rails server --binding=0.0.0.0

```

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [18.Ноябрь.2020 13:04:04 UTC](https://meta.discourse.org/t/how-to-open-via-internal-ip/170456/3 "2020-11-18T13:04:04Z")

</div>

У меня тоже возникли проблемы с тем, чтобы мой сервер разработки слушал IP-адрес при недавней установке в режиме разработки на Ubuntu.

Я почти уверен, что выполнил рекомендации Саймона, а также использовал `bin/rails`.

---

<div class="post-metadata">

### Author: ![chiehpower](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chiehpower/32/200361_2.png) [@chiehpower](https://meta.discourse.org/u/chiehpower)
#### Post date: [19.Ноябрь.2020 01:20:15 UTC](https://meta.discourse.org/t/how-to-open-via-internal-ip/170456/4 "2020-11-19T01:20:15Z")

</div>

Уважаемый @simonk,

Спасибо за ваш ответ!!  
Я использую Ctrl+C для остановки процесса в терминале и запускаю сервер командой `bundle exec rails server --binding=0.0.0.0`, но, похоже, это всё ещё не работает.

Подскажите, пожалуйста, как правильно остановить процесс и запустить его снова? Я заметил, что даже после закрытия терминала форум остаётся доступным. Кроме того, я не использую Docker-контейнеры, поэтому у меня нет утилиты `launcher` для выполнения команды `./launcher stop app`. Также я пробовал выполнить `kill $(cat tmp/pids/server.pid)`, но получил ошибку: `cat: tmp/pids/server.pid: Нет такого файла или каталога`.

Буду очень признателен за любые подсказки.

Заранее спасибо!

С уважением,  
Чие

---

<div class="post-metadata">

### Author: ![simonk](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simonk/32/247950_2.png) [@simonk](https://meta.discourse.org/u/simonk)
#### Post date: [19.Ноябрь.2020 10:06:30 UTC](https://meta.discourse.org/t/how-to-open-via-internal-ip/170456/5 "2020-11-19T10:06:30Z")

</div>

(Отказ от ответственности: Я сам не запускал Rails таким образом — я использую [среду разработки на базе Docker](https://meta.discourse.org/t/beginners-guide-to-install-discourse-for-development-using-docker/102009?u=simonk))

> [@chiehpower](#):
>
> Мне интересно, как правильно остановить его, а затем снова запустить? Потому что я обнаружил, что даже после закрытия терминала я всё ещё могу получить доступ к форуму.

Вы уверены в этом? Со мной уже случалось подобное, потому что мой браузер кэшировал приложение Discourse и позволял мне перемещаться между темами, даже если процесс сервера не работал. Возможно, стоит проверить это с помощью `curl`:

```
curl http://localhost:3000

```

Также можно проверить, запущены ли какие-либо процессы `ruby`:

```
ps -ef | grep ruby

```

Утилита `netstat` может показать, какие процессы прослушивают определённые порты. Например, если я запущу простой веб-сервер на Python так:

```
$ python3 -m http.server 8099
Serving HTTP on 0.0.0.0 port 8099 (http://0.0.0.0:8099/) ...

```

Затем выполню `netstat`:

```plaintext
$ netstat -tlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8099 0.0.0.0:* LISTEN 2511478/python3
...

```

Это показывает, что процесс с PID 2511478 прослушивает порт 8099 на всех интерфейсах (`0.0.0.0` означает «все интерфейсы»). Чтобы получить немного больше информации об этом процессе:

```plaintext
$ ps -fp 2511478
UID PID PPID C STIME TTY TIME CMD
simon 2511478 1250783 0 09:53 pts/11 00:00:00 python3 -m http.server 8099

```

---

<div class="post-metadata">

### Author: ![chiehpower](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chiehpower/32/200361_2.png) [@chiehpower](https://meta.discourse.org/u/chiehpower)
#### Post date: [20.Ноябрь.2020 02:56:46 UTC](https://meta.discourse.org/t/how-to-open-via-internal-ip/170456/6 "2020-11-20T02:56:46Z")

</div>

Привет @simonk,

Спасибо за информацию! Она очень полезна. К тому же я уже перешел на docker-container таким образом.  
Я продолжу экспериментировать с Discourse. Я действительно в восторге от этого.

Ещё раз спасибо!

С уважением,  
Чие

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [20.Декабрь.2020 03:01:41 UTC](https://meta.discourse.org/t/how-to-open-via-internal-ip/170456/7 "2020-12-20T03:01:41Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
