Есть ли способ узнать, какие клиентские машины подключены к конкретному прокси-серверу в redhat linux, я использую redhat linux версии 6 и настроенный в нем squid
Если Squid прослушивает порт, скажем, 3128, вы можете перечислить все IP-адреса, подключенные к этому порту, используя команду вроде netstat
на сервере.
Например:
netstat -na | grep :3128
отобразит что-то вроде ниже:
tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN
tcp 1 0 10.12.0.1:3128 10.12.3.60:53736 CLOSE_WAIT
tcp 1 0 10.12.0.1:3128 10.12.4.24:60545 CLOSE_WAIT
tcp 1 0 10.12.0.1:3128 10.12.4.13:50484 ESTABLISHED
tcp 1 0 10.12.0.1:3128 10.12.3.55:52669 ESTABLISHED
Вы можете игнорировать первую строку, которая отображает прослушивание службы squid по умолчанию. Для остальных строк 4-я строка - это IP-адрес локального сервера, а 5-я строка - это удаленная конечная точка (клиенты, подключающиеся к прокси). В 6-м столбце вы можете увидеть статус TCP-соединения. В ESTABLISHED
обозначает активное в настоящее время соединение.
Вы можете только указать установленное соединение с этим:
netstat -na | grep :3128 | grep ESTABLISHED
Вы можете использовать команду без -n
вариант, чтобы отображать имя хоста вместо IP-адресов.
netstat -a | grep :3128 | grep ESTABLISHED
Если вы хотите указать только IP-адреса, вы можете использовать следующую команду:
$ netstat -na | grep :3128 | awk '{print $5}' |uniq
Результат будет примерно таким:
192.168.5.1:32832
192.168.5.1:32797