Удаленный конец переадресации портов разрешен на сервере. Поэтому вам нужно настроить IP-адрес / имя хоста так, чтобы он работал, так как вы подключаете от самого сервера .
База данных, вероятно, прослушивает только интерфейс localhost
. Не на общедоступном IP-адресе (в противном случае вам, возможно, не понадобится перенаправление портов в первую очередь).
Кроме того, не стоит жестко кодировать локальный перенаправленный порт. Вы не можете знать, если этот порт еще не занят другим приложением. Позвольте системе выбрать любой свободный локальный порт.
var port = new ForwardedPortLocal("127.0.0.1", "127.0.0.1", 5432);
client.AddForwardedPort(port);
port.Start();
string connString =
$"Server={port.BoundHost};Database=dbname;Port={port.BoundPort};" +
"User Id=dbuser;Password=dbpassword;";
using (var conn = new NpgsqlConnection(connString))
{
conn.Open();
}