Как открыть порт?

Очень читабельный код должен использовать .substring() с начальным значением, установленным для индекса второго символа (1) (первый символ имеет индекс 0). Второй параметр метода .substring() на самом деле необязателен, поэтому вам даже не нужно вызывать .length() ...

TL; DR: удалить первый символ из строки:

str = str.substring(1);

... да, это так просто ...

Удаление некоторых конкретных символов:

Как и @Shaded, просто зациклите это, в то время как первый символ вашей строки является «нежелательным» символом ...

var yourString = "0000test";
var unwantedCharacter = "0";
//there is really no need for === check, since we use String's charAt()
while( yourString.charAt(0) == unwantedCharacter ) yourString = yourString.substr(1);
//yourString now contains "test"

.slice() против .substring() против .substr()

Цитата (и больше об этом в) В чем разница между String.slice и String.substring?

Он также указывает, что если параметры для среза отрицательны, они ссылаются на строку с конца. Substring и substr не являются.

21
задан 06.05.2020, 04:46

2 ответа

Ваш вывод iptables показывает, что ни один порт не заблокирован.

Итак, вопрос в том, слушает ли что-нибудь порт 8000? Если ничего не прослушивает порт, но порт не заблокирован брандмауэром, nmap сообщит об этом как closed. Начиная с здесь :

закрыто

Доступен закрытый порт (он принимает и отвечает на тестовые пакеты Nmap), но нет приложения, прослушивающего его. Они могут помочь показать, что хост подключен к IP-адресу (обнаружение хоста или сканирование ping), а также как часть обнаружения ОС. Поскольку закрытые порты достижимы, может потребоваться сканирование позже, если некоторые из них открываются. Администраторы могут захотеть заблокировать такие порты с помощью брандмауэра. Затем они появятся в отфильтрованном состоянии, обсуждается далее.

Итак, в отчете nmap: "996 closed ports" фактически говорится, что эти порты не заблокированы брандмауэром, но никакая программа не прослушивает их. nmap сообщает о заблокированном порте как filtered:

отфильтрованный

Nmap не может определить, открыт ли порт, потому что фильтрация пакетов препятствует тому, чтобы его зонды достигли порта. Фильтрация может осуществляться с выделенного устройства брандмауэра, правил маршрутизатора или программного обеспечения брандмауэра на основе хоста. ...

Таким образом, если вы переведете приложение в состояние прослушивания на порт 8000, оно, скорее всего, будет отображаться в выходных данных nmap. Вы можете сделать это, если вы просто запустите python3 -m http.server или python -m SimpleHTTPServer на машине, на которой вы пытаетесь открыть порты, это приведет к тому, что HTTP-сервер прослушивает порт 8000. Затем снова запустите nmap для сканирования машины.

ОБНОВЛЕНИЕ:

Ваш вывод netstat имеет следующую строку:

tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN      4134/python  

Это означает, что ваша программа на Python прослушивает только localhost (127.0.0.1), поэтому она доступна только от местного, а не снаружи. Программа должна прослушивать IP вашего сетевого адаптера или универсальный 0.0.0.0 IP. Проблема в том, что я написал выше, ни одна программа не слушает порт 8000 (из внешнего мира), поэтому nmap говорит, что он закрыт. [Тысяча сто двадцать семь]

25
ответ дан 06.05.2020, 04:47
  • 1
    Falconer' s право. Измените свою программу для слушания на 0.0.0.0 или IP-адрес LAN вместо 127.0.0.1. – justSteve 06.05.2020, 04:47
  • 2
    Я добавил nmap от той же машины. Существует на самом деле программа, слушающая на 8 000 – jbobbins 06.05.2020, 04:48
  • 3
    @MohammadMoghimi работайте sudo netstat -tulpn на машине, на которой Вы пытаетесь открыть порт и отправить вывод. – toesslab 06.05.2020, 04:48
  • 4
    pastebin.com/xhwc6vMN MYIP является моим IP-адресом. – Luca Fagioli 06.05.2020, 04:49
  • 5
    @MohammadMoghimi я обновил свой ответ, Вы программируете, только слушает на locahost, это - проблема, посмотрите мое обновление. – Jesper Rønn-Jensen 06.05.2020, 04:49

Включить порт в Ubuntu

sudo ufw allow <port_nr>

, например, разрешить ssh

sudo ufw allow 22

sudo ufw enable

Это ИТ

1
ответ дан 06.05.2020, 04:48
  • 1
    Для God' s польза, НЕ ПИШИТЕ ЭТО. Будут новички, которые не будут в состоянии получить доступ к их серверам после того, как sudo ufw включат – Johann 06.05.2020, 04:48

Теги

Похожие вопросы