LINUX.ORG.RU
решено ФорумAdmin

Порт открыт, но не виден снаружи

 , , ,


0

1

если не туда, извините

Здарова, линуксоиды, у меня возникла проблема, с которой не справились даже 3 дня гугления. Итак, я решил сделать на своем ноуте на Ubuntu 17.10 небольшой веб-сервер на nginx'e. Про то, что там, говорить не буду, ибо это не относится к теме

Я сижу через ГПОН от небезызвестного МГТС'а, поэтому IP не статический, и именно поэтому я настроил роутер на NO-IP с адресом, допустим, example.hopto.org. Также я направил свой домен example.com через CNAME на exampe.hopto.org. То есть, получается примерно такая картина:

example.com -> example.hopto.org -> 1.2.3.4 -> <мой роутер> -> 192.168.0.105 (мой пк) -> nginx

С пк, на котором висит сервер, можно зайти на любой из этих адресов, появится приветствие моего сервера.

С другого устройства из локальной сети на сервер также можно зайти с любого из адресов, но

с внешнего устройства (вне локальной сети) появится либо ERR_UNREACHABLE, либо ошибка от squid'a. 2ip.ru/check-port также выдает «порт закрыт»

ОДНАКО, на роутере порт открыт и направлен на ПК (тык, тык) (для неверующих что локальный ип - 105: тык)

Как говорится, вопрос каково ***?

P.S. но если запустить сервер на винде (не нгинкс, но, к примеру, ВНЦ), и открыть порт, то он открывается наружу спокойно, так что не надо говорить про то, что не поддерживается провайдером/роутером. поддерживается

P.P.S. на линуксе ВНЦ тоже снаружи не виден

# почему cut не работает??
# ufw удален полностью
# /etc/nginx/sites-enabled/default

# Default server configuration
server {
	listen 80;
	listen [::]:80;

	# SSL configuration
	#
	# listen 443 ssl default_server;
	# listen [::]:443 ssl default_server;
	#
	# Note: You should disable gzip for SSL traffic.
	# See: https://bugs.debian.org/773332
	#
	# Self signed certs generated by the ssl-cert package
	# Don't use them in a production server!
	#
	# include snippets/snakeoil.conf;

	root /var/www/html;

	index index.php index.html index.htm index.nginx-debian.html;

	server_name _;

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
	}

	# pass PHP scripts to FastCGI server
	#
	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
	#
	#	# With php-fpm (or other unix sockets):
		fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
	#	# With php-cgi (or other tcp sockets):
	#	fastcgi_pass 127.0.0.1:9000;
	}
    location /generate_204 { # аналог /generate_204 от гугла для проверки соединения
        return 204;
    }
    location /stats {
        stub_status on;
        access_log   off;
        allow 127.0.0.1;
        deny all;
    }
	# deny access to .htaccess files, if Apache's document root
	# concurs with nginx's one
	#
	location ~ /\.ht {
		deny all;
	}
}

# nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
	worker_connections 1024;
	# multi_accept on;
}

http {

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;
	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# SSL Settings
	##

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;
	gzip_disable "msie6";

	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

	##
	# Virtual Host Configs
	##

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}


#mail {
#	# See sample authentication script at:
#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#	# auth_http localhost/auth.php;
#	# pop3_capabilities "TOP" "USER";
#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#	server {
#		listen     localhost:110;
#		protocol   pop3;
#		proxy      on;
#	}
# 
#	server {
#		listen     localhost:143;
#		protocol   imap;
#		proxy      on;
#	}
#}

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:1924
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         


Последнее исправление: taizogem (всего исправлений: 6)

1) Провайдер может фильтровать порты

проверяй telnet'ом снаружи

2) а вот следующий момент смущает. Обычно NAT на роутере делают без SNAT:

С пк, на котором висит сервер, можно зайти на любой из этих адресов, появится приветствие моего сервера.

если снаружи порт доступен, проверяй свою трансляцию и запись в DNS

router ★★★★★
()
Ответ на: комментарий от router

1) если запустить сервер на винде (не нгинкс, но, к примеру, ВНЦ), и открыть порт, то он открывается наружу спокойно, так что не надо говорить про то, что не поддерживается провайдером/роутером. поддерживается. ВНЦ на линуксе также снаружи не виден

2) в днс'е запись есть, с разных сервисов ip резольвится, опять же, с любого из внешних адресов, но порт недоступен

taizogem
() автор топика
Ответ на: комментарий от router

из фаерволов только iptables остался (вроде), стоковый ufw я снес со всеми остаточными цепочками. в iptables разрешение порта прописал вот так: iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

taizogem
() автор топика
Ответ на: комментарий от taizogem

Ты telnet'ом доступ снаружи проверил?

Либо «у меня не работает, памагите», либо «я всё с делал правильно, идите с вашими ламерскими советами». Одновременно не бывает

router ★★★★★
()
Ответ на: комментарий от goingUp

на любой, хотя nmap localhost выдает это

Starting Nmap 7.60 ( https://nmap.org ) at 2018-03-21 20:42 MSK
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000030s latency).
Not shown: 993 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https
631/tcp  open  ipp
3306/tcp open  mysql
3689/tcp open  rendezvous
8600/tcp open  asterix

Nmap done: 1 IP address (1 host up) scanned in 1.78 seconds

taizogem
() автор топика
Ответ на: комментарий от goingUp

пинг-то как раз таки идет, да даже не только на ип, но и на хосты.

taizogem
() автор топика
Ответ на: комментарий от router

ни пинг, ни порт чек, ни нмап, ни http запрос извне не виден

(пинг проходит, но tcpdump'ом не виден)

все то же самое лоакльно идет на ура

taizogem
() автор топика
Ответ на: комментарий от taizogem

(пинг проходит, но tcpdump'ом не виден)

Ну так подробности в студию.

anc ★★★★★
()

либо ошибка от squid'a. 2ip.ru/check-port также выдает «порт закрыт»

тебя что провайдер выпускает в интернет через проксю squid? какой у тебя IP на роутере который ты получаешь от провайдера?

rootmaster
()
Ответ на: комментарий от Twissel

Если я все правильно понял, у него вообще пакеты «извне» до роутера не доходят.

goingUp ★★★★★
()

Опаньки. Перечитал топик, и даже посмотрел ссылки. С каких это пор сеть 192.168.0.0/16 стала внешним? У Вас такого не увидел.

Я сижу через ГПОН от небезызвестного МГТС'а, поэтому IP не статический

А какой? МГТС начал выдавать динамический внешний IP ? Пример в студию, это не страшно, можно полный не указывать, часть только, что бы стало понятно.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

МГТС начал выдавать динамический внешний IP ? Пример в студию

сам сначала думал, что он статик, но набросал небольшой скрипт, который проверяет текущий IP с предыдущим, и опытным путем выяснилось, что он меняется раз в 3-4 дня. В след. раз поймаю - скину скрин. Текущий - 37.***.**.152

тебя что провайдер выпускает в интернет через проксю squid?

понятия не имею. вроде нет, она вылазит если попытаться зайти извне (например, с мобильного интернета), и то не всегда

какой у тебя IP на роутере который ты получаешь от провайдера?

говорю же, он динамический

Если я все правильно понял, у него вообще пакеты «извне» до роутера не доходят.

но ведь если из-под винды на том же пк запустить внц, то можно спокойно подключиться, а к линуксу подключиться не получается

С каких это пор сеть 192.168.0.0/16 стала внешним

а где ты вообще /16 увидел? у меня /24. да и это локальный адрес, а не внешний

taizogem
() автор топика

Внешний IP адрес, под которым ходит снаружи (напр., проверить тут - http://ping.eu/) совпадает с WAN IP, который получает роутер провайдера?

darkduke
()
Ответ на: комментарий от taizogem

но ведь если из-под винды на том же пк запустить внц, то можно спокойно подключиться, а к линуксу подключиться не получается

Попробуй nginx и роутер перенастроить на порт 8080(или любой другой). Может у тебя и правда провайдер режет.

lebfr
()
Ответ на: комментарий от darkduke

Внешний IP адрес, под которым ходит снаружи (напр., проверить тут - http://ping.eu/) совпадает с WAN IP, который получает роутер провайдера?

скрин

taizogem
() автор топика
Ответ на: комментарий от timdorohin

Попробуй пробиться с помощью upnp, может поможет.

попытался — убрал проброс порта из роутера, запустил upnpc с порта 80 на 80 — открывается админка роутера, и даже по внешнему ИП, но только из локальной сети. С внешнего 8080 на 80 также не работает — ERR_CONNECTION_REFUSED

taizogem
() автор топика
Ответ на: комментарий от lebfr

Попробуй nginx и роутер перенастроить на порт 8080(или любой другой). Может у тебя и правда провайдер режет.

попробовал - внешний 8080~8080, внутренний 80~80, в локальной сети на порту 80 открывается админка, на 8080 - сервер. извне ERR_ADDRESS_UNREACHABLE

внешний 8080~8080, внутренний 80~80 — то же самое

taizogem
() автор топика
Ответ на: комментарий от taizogem

Порт закрыт. но ведь из локальной сети даже через public ip запросы идут.

Ты нормальный? Кто проверяет из локалки своей доступ через внешний адрес, тебя роутер заворачивает назад сразу.

... Если ты в бубунте ничего не менял то по умолчанию все порты открыты.скорее все косяк с пробросом портов

jo_b1ack ★★★★★
()
Последнее исправление: jo_b1ack (всего исправлений: 1)
Ответ на: комментарий от jo_b1ack

тебя роутер заворачивает назад сразу.

а он так может? спасибо, не знал

Если ты в бубунте ничего не менял

снес ufw, но и с ним ничего не работало

taizogem
() автор топика
Ответ на: комментарий от taizogem

а где ты вообще /16 увидел? у меня /24. да и это локальный адрес, а не внешний

На вашем скрине я увидел три сетки 192.168.x.0/24 и одну 10-ую просто объединил для краткости что бы не расписывать все.

Текущий - 37.***.**.152

Уже годно.

но ведь если из-под винды на том же пк запустить внц, то можно спокойно подключиться, а к линуксу подключиться не получается

Повесьте nginx на этот же (vnc) порт и проверьте. Пров действительно может резать и <1024 плюс общеизвестные порты типа 8080 2525 и т.п. Для отладки запустите tcpdump что бы промониторить.

anc ★★★★★
()
Ответ на: комментарий от anc

Пров действительно может резать и <1024 плюс общеизвестные порты типа 8080 2525

Мда, вот такой подставы от ув. МГТС я не ожидал. как оказалось, они режут порты 80, 443, 22 и 21 т.к. эти порты направлены на их OPN (терминал). открыл порт 1667, настроил нгинкс на него же - все завелось, да и 2ип показывает, что порт открыт. Мдааааааа. Решено, конечно, но провайдера, скорее всего, буду менять..

taizogem
() автор топика
Ответ на: комментарий от taizogem

Информация от МГТС о заблокированных портах «в целях безопасности»:

TCP 25 Предотвращение спам-активности (SMTP open relays) (Anti-spam protection (SMTP open relays)
TCP 135-139, 445 Обеспечение безопасности Windows-систем (Ensuring Windows systems security)
TCP 21, 23, 69, 80, 8080, 254, 255, 161 Защита абонентского оборудования (CPE protection)
UDP 135-139 Обеспечение безопасности Windows-систем (Ensuring Windows systems security)
UDP 69, 161 Защита абонентского оборудования (CPE protection)

taizogem
() автор топика
Ответ на: комментарий от taizogem

Лучше всё-таки воспользоваться сервисов VPS. Это и безопаснее и удобнее и возможностей больше. Можно свой почтовик поднять на личном домене.

targitaj ★★★★★
()
Ответ на: комментарий от taizogem

Мдааааааа. Решено, конечно, но провайдера, скорее всего, буду менять..

Зачем? У них есть услуга белый статик https://mgts.ru/home/internet/services/static_ip/. А вот на основании нее уже можно требовать открыть все порты.
У другого прова с бОльшей вероятностью вообще будете получать только серые адреса.

anc ★★★★★
()
Ответ на: комментарий от targitaj

Лучше всё-таки воспользоваться сервисов VPS
Это и безопаснее....Можно свой почтовик поднять

Безопасный (в кавычках) почтовик это у меня под диваном, я во всяком случае знаю что на нем происходит и он подконтрольный полностью. А у «дяди васи» хз что там произойдет.

anc ★★★★★
()
Ответ на: комментарий от targitaj

Ну как-то спам не рассылаю. Мыж про почтарь. Для меня пролюбливание почты (из-за «дяди васи») как то более важный аргумент, не использовать «дядю васю»

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от targitaj

Был реальный пример. Одын гордый спш-ный пров провел модернизацию у себя снеся к люлям все. Но мы были готовы, бэкапы есть, однако после модернизации выяснилось что и дисковая квота уменьшилась, старые бэкапы уже не влезают. А для увеличения теперь надо больше денюшек платить. Так что в попу без необходимости.

anc ★★★★★
()
Ответ на: комментарий от targitaj

Простите не понял сразу, а вы не уточнили. В таком варианте полностью согласен.
ЗЫ Но мне и под диваном норм, зачем переплачивать? :)

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.