Tá an dá chliant ar an ríomhaire glúine céanna, téann siad tríd an tollán céanna, agus ní nascann ach duine acu. Breathnaíonn an comparáid sin mar chruthúnas go bhfuil an VPN roghnach, cé gurb é an míniú i bhfad níos coitianta ná go ndéanann an dá chliant ceann scríbe difriúil a dhiailiú. Coinníonn GUI a óstach, a phort, a ról agus a shocruithe TLS féin agus tógann sé seoladh SSH go ciúin nuair a bhíonn ceann de dhíth air, agus cruinníonn psql nasc ó réamhshocruithe libpq a d'fhéadfadh do bhlaosc a bheith socraithe cheana féin. Chun an nasc oibre a atáirgeadh, ní gá ach socruithe an GUI a léamh, ní an tollán a athshuiteáil.

An miotas: cruthaíonn cliant amháin atá ag obair an cosán

Má nascann an GUI, iompraíonn an tollán trácht, agus sin an t-aon rud a chruthaíonn an GUI. Ní deir sé dada faoi cén seoladh a réitíonn psql, cén ról lena ndéanann sé fíordheimhniú, ná an bhfágann an soicéad a osclaíonn sé an meaisín riamh. Tá an cosán roinnte; níl na paraiméadair.

Leathnaíonn seoladh áitiúil an bhearna. Féadann an GUI nascadh le 127.0.0.1 ar phort a sheol sé thar SSH, agus ní bhíonn an éisteoir sin ann ach fad a mhaireann seisiún an GUI. Faigheann psql a dhírítear ar localhost gan an seoladh nasc a diúltaíodh nach bhfuil baint ar bith aige leis an VPN.

Léigh an ceann scríbe a úsáideann an GUI i ndáiríre

Oscail airíonna an naisc agus cóipeáil ceithre luach: óstach, port, bunachar sonraí agus ról. Ansin féach le haghaidh cluaisín tolláin, mar go n-athraíonn seoladh SSH seoladh príobháideach ina phort áitiúil agus athraíonn sé an méid a chaithfear a rá le psql.

SettingWhat the GUI holdsWhat psql uses when the value is absent
DestinationA saved hostname, sometimes behind a forwardA local Unix socket, not the remote endpoint
PortThe direct port or a forwarded local port5432, or the port from a service file
Role and databaseStored per connection profileYour operating-system user name
TLS identityIts own CA bundle and verification modeWhatever PGSSLMODE or the service file says
Startup filesNot read at allRead unless -X is passed

Teipeann gach ró ar chiseal difriúil, agus ainmníonn an teachtaireacht a fhaigheann tú an ciseal sin. Ní iompraíonn greamú ainm cairdiúil an phróifíl shábháilte isteach i psql aon cheann de na luachanna thuas, agus réitítear ainm seirbhíse trí chomhad nach léifidh an teirminéal riamh b'fhéidir.

Cad a fhaigheann libpq le hoidhreacht ó do bhlaosc

Is cliant tanaí thar libpq é psql, agus léann libpq an timpeallacht sula léann sé aon rud eile. Féadann athróga ar nós PGHOST, PGHOSTADDR, PGPORT, PGDATABASE, PGUSER, PGSERVICE agus PGSSLMODE cuid den nasc a atreorú. Faightear le hoidhreacht iad seachas iad a chlóscríobh, mar sin ní thaispeánann aon rud sa ordú a rith tú iad. Féadann PGSSLMODE easpórtáilte athrú freisin ar an méid a ghlacann an cliant gan focal ar an líne ordaithe.

Tá dhá cheann de na hathróga sin tuillte ag amhras ar dtús. Soláthraíonn PGHOSTADDR ceann scríbe uimhriúil a sháraíonn réiteach ainmneacha agus an t-óstainm fós i gceannas ar fhéiniúlacht an teastais, agus tarraingíonn PGSERVICE óstach, bunachar sonraí agus roghanna TLS as comhad seirbhíse. Is droch-nós é an timpeallacht iomlán a dhumpáil chun é seo a dhífhabhtú, óir d'fhéadfadh pasfhocail agus comharthaí neamhghaolmhara a bheith ann; roghnaigh na hathróga a bhfuil suim agat iontu ina ionad.

Má fhágtar host agus hostaddr ar lár araon roghnaítear soicéad fearainn Unix seachas seoladh líonra. Dá bhrí sin féadann glao psql gan -h éirí go háitiúil, nó teip le hearráid soicéid, gan an bealach a úsáideann an GUI a bhaint riamh.

Seol na paraiméadair chéanna de láimh

Agus luachanna an GUI agat, cuir ar aghaidh go sainráite iad agus scipeáil an comhad tosaithe a d'fhéadfadh sáruithe a chur leis. Tá an teaghrán naisc thíos léiritheach: cuir an ceann scríbe, an port, an bunachar sonraí agus an ról in ionad na luachanna a d'fhormheas do riarthóir, agus coinnigh an chumraíocht muiníne atá ag obair cheana.

psql -X "host=db.internal.example port=6432 dbname=orders user=report_ro sslmode=verify-full connect_timeout=5"

Tá trí shonra sa ordú sin d'aon ghnó. Cuireann -X comhad tosaithe psql faoi chois, cé nach gcuireann sé timpeallacht libpq ná sainmhíniú seirbhíse faoi chois. Coinníonn connect_timeout=5 cosán poll dubh ón teirminéal a chrochadh ar feadh nóiméad. Coinníonn sslmode=verify-full seiceálacha teastais agus óstainm ar siúl, agus sin go díreach an chuid a mhúchann daoine nuair a thagann earráid TLS chun solais.

Má tá an ceann scríbe ceadaithe taobh thiar de phooler, féadann port 6432 agus port 5432 na sonraí céanna a shroicheadh trí fhéiniúlachtaí freastalaí difriúla, agus féadann an fíorú teip ar ainm an phooler seachas ar ainm an bhunachair sonraí. Ceartaigh an t-ainm sa teaghrán naisc seachas an mód a lagsmachtú.

Lig don teachtaireacht earráide an chéad chéim eile a roghnú

Deir téacs na teipe cé chomh fada agus a chuaigh an iarracht, agus sáraíonn sin aon bhuille faoi thuairim faoin tollán. Teipeann ainm nach réitítear sula mbíonn soicéad ann, ciallaíonn am istigh gur scaoil an cosán nó balla dóiteáin paicéid, ciallaíonn diúltú gur fhreagair rud éigin agus gur dhiúltaigh sé, agus ciallaíonn earráid fhíordheimhnithe go raibh an líonra ag obair cheana.

psql -X -w "host=db.internal.example port=6432 dbname=orders user=report_ro sslmode=verify-full connect_timeout=5" -c '\conninfo'
env | grep -E '^PG'
psql --version

Cuir aschur \conninfo i gcomparáid le seisiún beo an GUI: an t-óstach céanna, an port céanna, an ról céanna, an staid TLS chéanna. Nuair a aontaíonn na ceithre rud sin, níl aon rud fágtha ag an VPN le mínithe. Go dtí go n-aontaíonn siad, is buille faoi thuairim é gach athrú breise ar an tollán faoi nasc nár dhein an teirminéal riamh.

Ailt ghaolmhara