Как я заставляю порт открываться?
У Вас есть общедоступный IP-адрес? Куда Вы выполняете NMAP? Это кажется, что Вы пытаетесь использовать свой IP локальной сети из Интернета. Эффективно компьютеры не являются той же сетью и не могут достигнуть друг друга. Вместо этого необходимо использовать Интернет, стоящий перед IP-адресом.
Прежде, чем проверить, являются ли порты открытой попыткой выполнить команду ping между хостами.
На исходном компьютере:
ping 192.168.1.4
Если пакеты ping проходят его, возможно сформировать соединение между двумя компьютерами.
Затем можно также выполнить netstat-l команда на главном компьютере, чтобы видеть, что демон SSH действительно слушает порт 22:
netstat -l
Ваш вопрос не очень ясен, Вы возражали бы разъясняться?
Если сервис не работает на порте nmap, привычка показывают его как открытый. В Ubuntu насколько я знаю, политика по умолчанию для iptables, ПРИНИМАЮТ, поэтому если Вы запустите сервис, работающий на X портах, то это будет проведено через брандмауэр без любых проблем. Таким образом, те порты действительно "не закрываются" в том смысле, что они заблокированы, его просто, что нет ничего там для прислушиваний к чему-либо на них.
Это сказанное, Если Вы хотите явно открыть порт, можно открыть его с iptables
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p udp --dport 53 -j ACCEPT
Можно изменить-p на другой протокол, и - dport к другому номеру порта. iptables имеет целый набор других опций, которые можно изучить.-j ПРИНИМАЮТ, может быть изменен на ОТБРАСЫВАНИЕ или ОТКЛОНЕНИЕ, если Вы хотите заблокировать их.