Роман Теличко

Заметки веб-разработчика/админа

Подключаемся к удаленному серверу по SSH через SOCKS 5 прокси

// Ноябрь 21, 2013 | 1515 просмотров | комментариев (0)

Иногда необходимо подключится к удаленному серверу по протоколу SSH через существующий SOCKS 5 прокси, что может быть создан как из SSH-подключения к другому серверу, так и другими способами.
Сегодня я расскажу об этом.

В этой статье я уже писал как создать SOCKS 5 прокси на сервере имея SSH-доступ к нему. Для примера сделаем SOCKS 5 на одном сервере и подключимся через него к второму.

На сервере с SOCKS 5 прокси (если он создаётся через SSH, а не другими способами) в файле настроек SSH /etc/ssh/sshd_config должна быть строчка разрешающая пересылку TCP-пакетов:

AllowTcpForwarding yes

Без неё у вас врядли что-то получится.

Итак, используя шаблон

ssh -f -C2qTnN -D <порт> <удаленный_пользователь>@<удаленный_сервер>

запустим прокси на порту 1080 для сервера 8.8.8.8 например так

ssh -f -C2qTnN -D 1080 roman@8.8.8.8

Теперь сама строчка подключения к второму удаленному серверу по протоколу SSH через SOCKS 5 прокси:

ssh -o ProxyCommand="nc -x 127.0.0.1:1080 %h %p" roman@8.8.4.4

Где
127.0.0.1:1080 — IP и порт SOCKS 5 прокси
roman — это ваш логин на сервер
8.8.4.4 — адрес вашего сервера

Это всё.
Удачи!

PostgreSQL. Храним таблицу в оперативной памяти (RAM)

// Ноябрь 7, 2013 | 4103 просмотров | комментариев (0)

Несмотря на то что PostgreSQL является довольно мощной базой данных, в ней отсутствует полноценная поддержка хранения таблиц в оперативной памяти.
Ниже я расскажу как заставить PostgreSQL хранить выбранные таблицы в оперативной памяти для быстрых операций с ними.
Всё будет происходить в Debian.

Создадим пустую папку для монтирования

mkdir /mnt/ramfs

И смонтируем в неё ramfs

mount -t ramfs none /mnt/ramfs

Создадим папку для PostgreSQL и назначим на неё права.

mkdir /mnt/ramfs/pgdata
chown postgres:postgres /mnt/ramfs/pgdata
chmod 600 /mnt/ramfs/pgdata

Далее зайдём под суперпользователем базы данных PostgreSQL — postgres

su postgres
psql

И создадим новый TABLESPACE, размещение которого мы укажим в папке с смонтированной ramfs

postgres=# CREATE TABLESPACE ram LOCATION '/mnt/ramfs/pgdata';

Выдадим права на работу с этом TABLESPACE нашему пользователю (например myuser)

postgres=# GRANT CREATE ON TABLESPACE ram TO myuser;

Теперь нам осталось только создать новую таблицу и указать при её создании TABLESPACE ram.
Например:

CREATE TABLE mytesttable (
    begin_ip ip4 NOT NULL,
    end_ip ip4 NOT NULL,
    begin_num bigint NOT NULL,
    end_num bigint NOT NULL,
    country_code character(2) NOT NULL,
    country_name character varying(255) NOT NULL,
    ip_range ip4r
)
TABLESPACE ram;

Теперь PostgreSQL будет работать с этой таблицей как и с другими даже не подозревая что она «лежит» в ОЗУ.

Это всё.
Удачи.