애플리케이션 서버 외부에서 호스팅되는 여러 데이터베이스가 있습니다. 예를 들면 다음과 같습니다. 데이터베이스 인스턴스:
192.168.178.21:5432
192.168.178.22:5432
192.168.178.23:5432
애플리케이션 서버:192.168.178.11
이제 외부 데이터베이스를 포트 5431-5433으로 전달하고 psql을 사용하여 localhost에 연결할 수 있기를 원합니다.
psql -h 127.0.0.1 -p 5432 -U <user> -d <db>
나는 얻다:
psql: could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5432?
이 서버의 서비스는 localhost에 대한 연결만 허용합니다. 그렇지 않으면 해당 포트는 SSH를 통해 전달됩니다.
방화벽 위장을 시도했습니다.
firewall-cmd --zone=internal --add-masquerade --permanent
firewall-cmd --zone=internal --add-forward-port=port=5432:proto=tcp:toport=5432:toaddr=192.168.178.22 --permanent
firewall-cmd --reload
어떤 아이디어가 있나요? (CentOS, Fedora, Redhat 소개 등 여러 매뉴얼을 모았습니다)
편집: 해당 서버에는 Postgres 포트만 열려 있고 다른 것은 없습니다. 나는 다음과 같은 postgresql 인식 게이트웨이를 사용하려고 노력할 것입니다.바삭바삭한 에이전트
답변1
postgresql이 어떻게 작동하는지에 따라 다릅니다.pg_hba.confpostgresql 서버가 나열된 IP 주소를 수신하는지 여부를 구성합니다.
그렇지 않고 이러한 서버에 SSH로 연결할 수 있으면 -L
ssh(1) 예제에서 SSH 포트 전달 옵션을 사용할 수 있습니다.
ssh [email protected] -L 5431:localhost:5432 -f
ssh [email protected] -L 5432:localhost:5432 -f
ssh [email protected] -L 5433:localhost:5432 -f
다음과 같은 방법으로 동일한 효과를 얻을 수 있습니다.~/.ssh/config
Host db1
Hostname 192.168.178.21
LocalForward localhost:5431 localhost:5432
Host db2
Hostname 192.168.178.22
LocalForward localhost:5432 localhost:5432
Host db3
Hostname 192.168.178.23
LocalForward localhost:5433 localhost:5432
그 다음에
ssh -f db1
ssh -f db2
ssh -f db3