VPN psql අවහිර කරන්නේ නැත: ඔබේ සේවාලාභියා වෙනත් තැනකට අමතයි
psql සහ GUI සේවාලාභියෙකුට එකම යන්ත්රයෙන් වෙනස් අන්ත ලක්ෂ්යවලට අමතන්නට හැක. VPN ට දොස් පැවරීමට පෙර සත්කාරකය, සොකට්, භූමිකාව සහ TLS සසඳන්න.
සේවාලාභී දෙදෙනාම එකම ලැප්ටොප් පරිගණකයේ ඇති අතර, එකම උමං මාර්ගය හරහා යයි, නමුත් ඒවායින් එකක් පමණක් සම්බන්ධ වේ. එම සංසන්දනය VPN තෝරාගෙන ක්රියා කරන බවට සාක්ෂියක් ලෙස දැනේ, නමුත් වඩාත් සුලභ පැහැදිලි කිරීම වන්නේ සේවාලාභී දෙදෙනා වෙනස් ගමනාන්තවලට අමතන බවයි. GUI එකක් තමන්ගේම සත්කාරකය, වරාය, භූමිකාව සහ TLS සැකසුම් රඳවා ගෙන අවශ්ය විට නිහඬව SSH යොමුවක් ගොඩනඟයි, නමුත් psql ඔබේ shell දැනටමත් සකසා තිබිය හැකි libpq පෙරනිමි අගයන්ගෙන් සම්බන්ධතාවක් එකලස් කරයි. ක්රියා කරන සම්බන්ධතාව නැවත නිපදවීම GUI සැකසුම් කියවීමේ කාරණයක් මිස උමං මාර්ගය නැවත ස්ථාපනය කිරීම නොවේ.
මිථ්යාව: එක් ක්රියාකාරී සේවාලාභියෙක් මාර්ගය ඔප්පු කරයි
GUI සම්බන්ධ වන්නේ නම්, උමං මාර්ගය ගමනාගමනය ගෙන යයි, GUI ඔප්පු කරන්නේ එපමණය. psql විසින් විසඳන ලිපිනය කුමක්ද, කුමන භූමිකාවෙන් සත්යාපනය කරයිද, හෝ එය විවෘත කරන සොකට් එක කිසිවිටෙක යන්ත්රයෙන් පිටවේද යන්න එය නොකියයි. මාර්ගය හවුල්ය; පරාමිතීන් නොවේ.
දේශීය යොමුව පරතරය පුළුල් කරයි. GUI එකක් SSH හරහා යොමු කළ වරායක 127.0.0.1 වෙත සම්බන්ධ විය හැකි අතර, එම ශ්රාවකය පවතින්නේ GUI සැසිය පවතින තාක් පමණි. යොමුවකින් තොරව localhost වෙත යොමු වූ psql ට VPN සමඟ කිසිදු සම්බන්ධයක් නැති ප්රතික්ෂේපිත සම්බන්ධතාවක් ලැබේ.
GUI ඇත්තටම භාවිත කරන අන්ත ලක්ෂ්යය කියවන්න
සම්බන්ධතාවයේ ගුණාංග විවෘත කර අගයන් හතරක් පිටපත් කරන්න: සත්කාරකය, වරාය, දත්ත සමුදාය සහ භූමිකාව. පසුව උමං මාර්ග ටැබයක් සොයන්න, මන්ද SSH යොමුවක් පෞද්ගලික ලිපිනයක් දේශීය වරායක් බවට පත් කර psql ට කිව යුතු දේ වෙනස් කරයි.
| Setting | What the GUI holds | What psql uses when the value is absent |
|---|---|---|
| Destination | A saved hostname, sometimes behind a forward | A local Unix socket, not the remote endpoint |
| Port | The direct port or a forwarded local port | 5432, or the port from a service file |
| Role and database | Stored per connection profile | Your operating-system user name |
| TLS identity | Its own CA bundle and verification mode | Whatever PGSSLMODE or the service file says |
| Startup files | Not read at all | Read unless -X is passed |
සෑම පේළියක්ම වෙනස් ස්තරයක අසාර්ථක වන අතර, ඔබට ලැබෙන පණිවිඩය එම ස්තරය නම් කරයි. සුරකින ලද පැතිකඩේ මිත්රශීලී නම psql ට අලවා ඉහත අගයන් කිසිවක් ගෙන යන්නේ නැත, සහ සේවා නාමයක් ටර්මිනලය කිසිවිටෙක නොකියවන ගොනුවක් හරහා විසඳනු ලැබේ.
libpq ඔබේ shell එකෙන් උරුම වන්නේ කුමක්ද
psql යනු libpq මත තුනී සේවාලාභියෙකි, libpq වෙනත් ඕනෑම දෙයකට පෙර පරිසරය කියවයි. PGHOST, PGHOSTADDR, PGPORT, PGDATABASE, PGUSER, PGSERVICE සහ PGSSLMODE වැනි විචල්යයන්ට එකින් එක සම්බන්ධතාවයේ කොටසක් වෙනතකට හරවා යැවිය හැක. ඒවා ටයිප් කරනු වෙනුවට උරුම වන බැවින්, ඔබ ධාවනය කළ විධානයේ කිසිවක් ඒවා නොපෙන්වයි. නිර්යාත කළ PGSSLMODE ද විධාන රේඛාවේ වචනයක් නොකියා සේවාලාභියා පිළිගන්නා දේ වෙනස් කළ හැක.
එම විචල්යයන්ගෙන් දෙකක් මුලින්ම සැක කළ යුතුය. PGHOSTADDR නාම විසඳුම ඉක්මවන සංඛ්යාත්මක ගමනාන්තයක් සපයන අතර සත්කාරක නාමය තවමත් සහතික අනන්යතාව තීරණය කරයි, සහ PGSERVICE සේවා ගොනුවකින් සත්කාරකය, දත්ත සමුදාය සහ TLS තේරීම් ඇද ගනී. මෙය නිර්මාණ දෝෂ සෙවීමට මුළු පරිසරයම විසි කිරීම නරක පුරුද්දකි, මන්ද එහි මුරපද සහ සම්බන්ධ නොවන ටෝකන තිබිය හැක; ඒ වෙනුවට ඔබට වැදගත් විචල්යයන් තෝරන්න.
host සහ hostaddr දෙකම ඉවත් කළ විට ජාල ලිපිනයක් වෙනුවට Unix වසම් සොකට් එකක් තෝරනු ලැබේ. එබැවින් -h නොමැතිව psql ඇමතුමක් දේශීයව සාර්ථක විය හැක, නැතහොත් සොකට් දෝෂයකින් අසාර්ථක විය හැක, GUI භාවිත කරන මාර්ගය කිසිවිටෙක ස්පර්ශ නොකර.
එම පරාමිතීන්ම අතින් යවන්න
GUI අගයන් අතේ ඇති විට ඒවා පැහැදිලිව ලබා දී අභිබවා යැවීම් එකතු කළ හැකි ආරම්භක ගොනුව මඟ හරින්න. පහත සම්බන්ධතා තන්තුව උදාහරණයකි: අන්ත ලක්ෂ්යය, වරාය, දත්ත සමුදාය සහ භූමිකාව ඔබේ පරිපාලක අනුමත කළ අගයන් සමඟ ප්රතිස්ථාපනය කර, දැනටමත් ක්රියා කරන විශ්වාස සැකසුම රඳවා ගන්න.
psql -X "host=db.internal.example port=6432 dbname=orders user=report_ro sslmode=verify-full connect_timeout=5"එම විධානයේ විස්තර තුනක් හිතාමතාම ඇත. -X psql හි ආරම්භක ගොනුව මර්දනය කරයි, නමුත් libpq පරිසරය හෝ සේවා අර්ථ දැක්වීම මර්දනය නොකරයි. connect_timeout=5 හිස් මාර්ගයක් ටර්මිනලය මිනිත්තු ගණනක් එල්ලා තැබීම වළක්වයි. sslmode=verify-full සහතික සහ සත්කාරක නාම පරීක්ෂාවන් සක්රීයව තබයි, TLS දෝෂයක් දිස්වන විට මිනිසුන් අක්රීය කරන්නේ හරියටම එම කොටසයි.
අනුමත අන්ත ලක්ෂ්යය pooler එකක පිටුපස තිබේ නම්, වරාය 6432 සහ වරාය 5432 විවිධ සේවාදායක අනන්යතා හරහා එකම දත්ත වෙත ළඟා විය හැක, සහ සත්යාපනය දත්ත සමුදායේ නම මත නොව pooler හි නම මත අසාර්ථක විය හැක. ප්රකාරය දුර්වල කරනු වෙනුවට සම්බන්ධතා තන්තුවේ නම නිවැරදි කරන්න.
ඊළඟ පියවර දෝෂ පණිවිඩයට තෝරා ගැනීමට ඉඩ දෙන්න
අසාර්ථකත්වයේ පෙළ පවසන්නේ උත්සාහය කොතරම් දුර ගියාද යන්නයි, එය උමං මාර්ගය ගැන ඕනෑම අනුමානයකට වඩා හොඳය. විසඳිය නොහැකි නාමයක් සොකට් එකක් පවතින පෙරම අසාර්ථක වේ, කාලය ඉකුත් වීම යනු මාර්ගය හෝ ගිනිපවුරක් පැකට් ඉවත් කළ බවයි, ප්රතික්ෂේපය යනු යමක් පිළිතුරු දී ප්රතික්ෂේප කළ බවයි, සහ සත්යාපන දෝෂය යනු ජාලය දැනටමත් ක්රියා කළ බවයි.
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\conninfo හි ප්රතිදානය GUI හි සජීවී සැසිය සමඟ සසඳන්න: එකම සත්කාරකය, එකම වරාය, එකම භූමිකාව, එකම TLS තත්ත්වය. ඒ හතර එකඟ වූ විට, VPN ට තවදුරටත් පැහැදිලි කිරීමට කිසිවක් ඉතිරි නොවේ. ඒවා එකඟ වන තෙක්, උමං මාර්ගයේ සෑම අමතර වෙනසක්ම ටර්මිනලය කිසිවිටෙක නොකළ සම්බන්ධතාවක් ගැන අනුමානයකි.