2

В течение последнего часа я читал об открытии портов в Ubuntu 12.04, и я не могу заставить что-либо работать. Я запускаю программу с RPC-сервером, принимающую локальные соединения на локальном хосте (127.0.0.1), которая позволяет диапазон IP- адресов 192.168.*.*

Я попытался отредактировать iptables, чтобы разрешить входящие соединения, но curl все еще не может подключиться к серверу RPC, независимо от того, что я делаю.

$ sudo iptables -A INPUT -i eth0 -p tcp --dport 18332 -j ACCEPT
$ nmap -v -sT localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2013-07-13 05:54 UTC
Initiating Ping Scan at 05:54
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 05:54, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 05:54
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 80/tcp on 127.0.0.1
Discovered open port 21/tcp on 127.0.0.1
Discovered open port 3389/tcp on 127.0.0.1
Discovered open port 3306/tcp on 127.0.0.1
Completed Connect Scan at 05:54, 0.05s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00060s latency).
Not shown: 995 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql
3389/tcp open  ms-term-serv

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
$ sudo iptables -A INPUT -i eth0 -p tcp --dport 18332 -m state --state NEW,ESTABLISHED -j ACCEPT
$ sudo iptables -A OUTPUT -o eth0 -p tcp --sport 18332 -m state --state ESTABLISHED -j ACCEPT
$ !nmap
nmap -v -sT localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2013-07-13 05:57 UTC
Initiating Ping Scan at 05:57
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 05:57, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 05:57
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 21/tcp on 127.0.0.1
Discovered open port 3306/tcp on 127.0.0.1
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 3389/tcp on 127.0.0.1
Discovered open port 80/tcp on 127.0.0.1
Completed Connect Scan at 05:57, 0.05s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00072s latency).
Not shown: 995 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql
3389/tcp open  ms-term-serv

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds

Вот вывод из curl:

$ curl --user uname:upass --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (7) couldn't connect to host

1 ответ1

1

Чтобы устранить проблему, вам, вероятно, нужно предоставить копию правил брандмауэра iptables - достаточно что-то вроде /sbin /iptables -vnL.

Я подозреваю, что у вас есть брандмауэр, где последнее правило - "Отбрось все". Правила, которые вы добавили, были добавлены в конец таблицы после этого правила и, следовательно, не были выполнены. Вместо написания ваших правил, начинающих «sudo iptables -A», попробуйте «sudo iptables -I», чтобы вставить правила вверху.

Кроме того, ваша команда sudo "iptables -A INPUT -i eth0 -p tcp --dport 18332 -j ПРИНЯТЬ" некорректна, если вы пытаетесь подключиться к localhost. Вы указали «-i eth0», что подразумевает устройство Ethernet. Localhost использует специальное устройство "lo". Вам может быть лучше просто пропустить параметр "-i eth0", чтобы он работал на всех интерфейсах.

По тем же причинам ваше утверждение «(127.0.0.1), которое разрешило диапазон ip 192.168 . » Ошибочно, как 192.168. , никогда не должен совпадать с маршрутом к 127.0.0.1, так как исходный IP-адрес будет интерфейсом lo, который связан с 127.0.0.1.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .