Labada macmiil waxay ku wada jiraan isku laptop, waxay maraan isku tunnel, mana xirnaado midkood oo keliya. Isbarbardhiggani wuxuu u muuqdaa caddayn in VPNku doorasho sameeyo, halka sharaxaad aad u badan tahay in labada macmiil ay u wacaan meelo kala duwan. GUI waxay haysataa host, port, door iyo dejinta TLS ee u gaar ah waxayna si aamusan u dhistaa gudbin SSH marka ay u baahato, halka psql uu isku dhiso xidhiidh ka yimid qiimaha caadiga ah ee libpq oo laga yaabo in shell-kaagu horey u dejiyay. Soo celinta xidhiidhka shaqaynaya waa arrin ku saabsan akhrinta dejinta GUI, ma aha dib u rakibidda tunnelka.

Khaarijinta: hal macmiil oo shaqeeya ayaa caddeeya wadada

Haddii GUI xirmaado, tunnelku wuxuu qaadaa taraafikada, waana waxa kaliya ee GUI caddeeyo. Ma sheegto cinwaanka psql u xalliyo, doorka uu ku xaqiijiyo, ama in socket-ka uu furo waligiis ka baxo mashiinka. Wadadu waa la wadaagaa; parameters-ka ma aha.

Gudbin maxalli ah ayaa farqiga ballaadhisaa. GUI waxay ku xirnaan kartaa 127.0.0.1 port ay SSH ku gudbisay, dhagaystahaasna wuxuu jiraa oo kaliya inta lagu jiro fadhiga GUI. psql oo loo jeediyay localhost oo aan gudbin lahayn wuxuu helaa xidhiidh la diiday oo aan wax xidhiidh ah la lahayn VPN-ka.

Akhri meesha ugu dambeysa ee GUI dhab ahaan isticmaalo

Fur sifooyinka xidhiidhka oo koobi afar qiime: host, port, database iyo door. Kadib raadi tab tunnel, sababtoo ah gudbinta SSH waxay cinwaan gaar ah u beddeshaa port maxalli ah waxayna beddeshaa waxa psql loo sheego.

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

Safar kastaa wuxuu ku guuldareystaa lakab kala duwan, fariinta aad heshana waxay magacawdaa lakabkaas. Ku dhejinta magaca saaxiibtinimo ee profile-ka la kaydiyay psql ma qaado wax ka mid ah qiimayaasha kor ku xusan, magaca adeeggana waxaa lagu xalliyaa fayl laga yaabo in terminal-ku waligiis akhriyin.

Waxa libpq ka dhaxlo shell-kaaga

psql waa macmiil khafiif ah oo ku sarreeya libpq, libpq-na wuxuu akhriyaa deegaanka ka hor wax kasta oo kale. Doorsoomayaal sida PGHOST, PGHOSTADDR, PGPORT, PGDATABASE, PGUSER, PGSERVICE iyo PGSSLMODE mid kastaa wuxuu u weeciyaa qayb ka mid ah xidhiidhka. Waa la dhaxlaa ee lama qoro, sidaas darteed wax kasta oo ku jira amarka aad waday ma muujiyaan. PGSSLMODE la dhoofiyay sidoo kale waxay beddeli kartaa waxa macmiilku aqbalo iyada oo aan kelmad lagu sheegin khadka amarka.

Laba ka mid ah doorsoomayaashan ayaa marka hore shaki mudan. PGHOSTADDR wuxuu bixiyaa meel lambar ah oo dhaafta xallinta magacyada halka magaca host uu weli go'aaminayo aqoonsiga shahaadada, PGSERVICE-na wuxuu ka soo saaraa host, database iyo xulashooyinka TLS fayl adeeg. Inaad dhammaan deegaanka daadiso si aad tan u debugto waa caado xun, maadaama ay ku jiri karaan passwords iyo tokens aan xidhiidh la lahayn; taa beddelkeeda dooro doorsoomayaasha aad danaynayso.

Ka tagista host iyo hostaddr labadaba waxay doorataa socket domain Unix halkii cinwaan shabakad. Sidaas darteed wicitaanka psql oo aan lahayn -h wuxuu maxalli ahaan ku guulaysan karaa, ama ku guuldareysan karaa qalad socket, isagoo aan waligiis taaban wadada GUI isticmaalo.

U dir isla parameters-ka gacanta

Marka qiimayaasha GUI gacantaada ku jiraan, si cad u gudbi oo ka bood faylka bilowga ee ku dari kara beddelaad. Xadhigga xidhiidhka ee hoose waa tusaale: beddel meesha ugu dambeysa, port, database iyo door qiimayaasha maamulahaagu ansixiyay, oo hayso habaynta kalsoonida ee horey u shaqaynaysa.

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

Saddex faahfaahin oo amarkaas ku jira ayaa ula kac ah. -X wuxuu cabburiyaa faylka bilowga psql, inkastoo uusan cabburin deegaanka libpq ama qeexidda adeeg. connect_timeout=5 wuxuu ka hortagaa in wado madhan terminal-ka dhinac dhigto daqiiqado. sslmode=verify-full wuxuu daaran hayaa hubinta shahaadada iyo magaca host, waana saxda qaybta ay dadku damiyaan marka qalad TLS soo baxo.

Haddii meesha ugu dambeysa ee la ansixiyay ay ka dambeeyso pooler, port 6432 iyo port 5432 waxay gaari karaan isla xogta iyada oo loo marayo aqoonsiyo server oo kala duwan, hubinta-na waxay ku guuldareysan kartaa magaca pooler halkii database. Hagaaji magaca xadhigga xidhiidhka halkii aad daciifin lahayd habka.

U ogolow fariinta qaladka inay doorato tallaabada xigta

Qoraalka guuldareysta wuxuu sheegaa inta isku daygu gaaray, taasna way ka fiican tahay qiyaas kasta oo ku saabsan tunnelka. Magac aan la xallin wuxuu ku guuldareystaa ka hor inta socket uusan jirin, waqtiga dhaqaaqa macnaheedu waa wadada ama firewall-ku wuxuu tuuray packets, diidmada macnaheedu waa wax baa jawaabay oo diiday, qaladka xaqiijintana macnaheedu waa shabakaddu horey ayay u shaqaynaysay.

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

Isbarbardhig soo saarista \conninfo fadhiga nool ee GUI: isla host, isla port, isla door, isla xaalad TLS. Marka afartanba ay is waafaqaan, VPN-ku wax kale ma haysto inuu sharraxo. Ilaa ay is waafaqaan, isbeddel kasta oo dheeraad ah oo tunnelka ah waa qiyaas ku saabsan xidhiidh uusan terminal-ku waligiis samayn.

Maqaallo la xiriira