Mae QGIS yn darllen unrhyw lwybr y gall ei ddarparwyr data ei gyrraedd, felly nid yw VPN sy’n gweithio ond hanner y trefniant. Mae’r tiwnel yn rhoi llwybr a pholisi datrys enwau i’r bwrdd gwaith; mae’r prosiect yn dal i fod angen pwynt terfyn y gwasanaeth, protocol y darparwr a’r manylion mewngofnodi y bydd y gwasanaeth yn eu derbyn. Tair cofnod ar wahân yw’r rhain, ac nid yw teipio gwrandawr cyhoeddus y VPN mewn maes cronfa ddata yn un ohonynt. Mae’r daith hon yn dilyn un haen PostGIS o ffurflen QGIS i res a ddychwelwyd ac yn enwi’r ffin y mae pob cam yn ei phrofi.

Dechreuwch gyda’r haen, nid gyda’r VPN

Mae pob math o haen yn cyrraedd math gwahanol o bwynt terfyn. Mae haen PostGIS yn agor cysylltiad PostgreSQL gyda gwesteiwr, porth, cronfa ddata a rôl. Mae haen WMS neu WFS yn nôl URL gwasanaeth ac yna’n dosrannu dogfen galluoedd. Nid oes angen ar ffeil shapefile ar rannu rhwydwaith ond llwybr ffeil y gall y system weithredu ei agor. Gan fod y rhain yn dri mecanwaith gwahanol, nid yw prosiect gwag yn dweud dim wrthych hyd nes y gwyddoch pa un rydych yn ei ddadbacio.

Gofynnwch i weithredwr GIS am y pwynt terfyn, y porth, yr hunaniaeth ofynnol a’r polisi mynediad sy’n berthnasol i’ch cyfrif. Cadwch enw gwesteiwr y gwasanaeth yn union fel y’i cyhoeddwyd pan fo’r defnydd yn dibynnu ar DNS preifat neu ar wiriadau enw’r dystysgrif. Ailddefnyddio cyfeiriad gwesteiwr a gopïwyd o gysylltiad a arbedwyd gan ddefnyddiwr arall yw’r ffordd gyflymaf o gyrraedd peiriant sy’n ateb ond sy’n dal cronfa ddata hŷn.

Mae llwybrau, adnoddau a ganiateir a datrys enwau yn perthyn i’r sawl sy’n rhedeg y VPN. Ni all ffurflen ffynhonnell ddata osod llwybr na wthiodd proffil y tiwnel erioed, ac ni all ehangu polisi porth. Pan fydd y gwesteiwr yn datrys ac yn ateb y porth, mae ochr rwydwaith y broblem wedi gorffen.

Rhowch y pwynt terfyn preifat a gyhoeddwyd gan y gweithredwr

Mae ffurflen PostgreSQL yn QGIS yn adlewyrchu’r meysydd y mae libpq yn eu disgwyl, felly llenwch hi yn yr un drefn ag y byddai cysylltiad llinell orchymyn yn ei wneud. Mae gwasanaeth a gwesteiwr yn cymryd peiriant y gronfa ddata, mae’r porth yn cymryd y gwrandawr y mae’r gweinydd yn ei agor mewn gwirionedd, ac mae’r gronfa ddata yn cymryd y catalog penodol yn lle rhagosodiad y gweinydd. Storiwch y cyfrinair mewn cyfluniad dilysu yn lle ffeil y prosiect, fel nad yw prosiect a rennir yn cario manylion mewngofnodi.

Gwahanwch y ddau enw cyn teipio unrhyw beth. Mae enw’r porth yn perthyn i glient y VPN ac mae enw’r gronfa ddata yn perthyn i QGIS, ac anaml ydynt yr un gwesteiwr.

VPN gateway:   vpn.gis.lab.example       (profile only, not a data source)
Database host: db.gis.lab.example:5432   (PostGIS service)
Database name: gis_prod
TLS mode:      verify-full

Os yw’r gronfa ddata ar beiriant arall y tu ôl i’r porth, rhaid i’r enw yn y ffurflen fod y peiriant hwnnw. DNS preifat drwy’r tiwnel sy’n gwneud i’r enw weithio, ac mae prosiect sy’n datrys dim ond tra byddwch wedi cysylltu yn ymddwyn yn gywir yn hytrach na chacheu’n wael.

Cadwch fodd TLS y gronfa ddata ar wahân i’r tiwnel

Mae’r SSL yn enw cynnyrch VPN yn disgrifio’r tiwnel, nid sesiwn y gronfa ddata. Mae QGIS yn trosglwyddo modd SSL PostgreSQL i libpq, ac mae’r modd hwnnw’n rheoli a yw’r cleient yn gwirio tystysgrif y gweinydd ac a yw’n gwirio enw’r gwesteiwr ynddi. verify-fullyn gwneud y ddau beth, a dyna pam ei fod y modd sy’n werth ei gadw pan fo’r dystysgrif yn cario enw’r gwasanaeth.

Mae gostwng y modd i disable oherwydd bod y tiwnel eisoes wedi’i amgryptio yn tynnu’r gwiriad mai’r gweinydd y gwnaethoch ei gyrraedd yw’r gweinydd y gwnaethoch ofyn amdano. Pan fydd y gwiriad yn methu, yr achos arferol yw anghytundeb enw neu dystysgrif gwraidd ar goll, ac mae’r ddau yn drwsiadwy heb wanhau’r cysylltiad. Pwyntiwch sslrootcert at y CA y mae’r gweithredwr yn ei gyhoeddi a chadwch enw’r gwesteiwr yn y ffurflen yn union yr un fath ag enw’r dystysgrif.

Gall tiwnel â llwybr preifat a chronfa ddata â thystysgrif ddilys fethu o hyd ar y rôl. Mae manylion mewngofnodi’r rhaglen ar wahân i fanylion mewngofnodi’r VPN, ac nid oes gan gyfrif sy’n dilysu i’r porth unrhyw hawliau ymhlyg yn PostgreSQL.

Profwch bob ffin yn ei thro a darllenwch y methiant cyntaf

Gweithiwch allan o’r cleient mewn trefn sefydlog: datrys enwau, cyrhaeddiad TCP, TLS, dilysu, yna’r ymholiad ei hun. Y cam cyntaf sy’n methu yw’r unig un sy’n werth ei adrodd, ac mae neidio ymlaen yn cynhyrchu negeseuon gwall o ffin nad ydych wedi’i chyrraedd eto. Mae pedwar gorchymyn yn cwmpasu’r pedwar cam cyntaf.

getent hosts db.gis.lab.example
nc -vz db.gis.lab.example 5432
psql "host=db.gis.lab.example port=5432 dbname=gis_prod sslmode=verify-full" -c 'select 1'
curl -sS 'https://wms.gis.lab.example/ows?service=WMS&request=GetCapabilities' | head -c 200

Mae ateb gwag o getent yn broblem datrys, nid yn broblem cronfa ddata. Mae nc a wrthodwyd neu a ddarfu amser iddo yn golygu bod llwybr neu reol firewall ar goll, sef trwsiad ar ochr y porth. Mae gwall TLS o psql yn golygu bod y dystysgrif neu’r enw’n anghywir, tra bod password authentication failed yn golygu eich bod wedi cyrraedd PostgreSQL a bod y broblem gyda’r manylion mewngofnodi. Ar gyfer haen WMS, mae’r alwad curl yn dychwelyd yr XML galluoedd y byddai QGIS yn ei ddosrannu, felly mae tudalen mewngofnodi HTML yn yr allbwn hwnnw’n egluro haen wag ar unwaith.

Mae gwall PostgreSQL yn newyddion da o’i gymharu ag amseriad allan. Mae’n profi bod y cyrchfan wedi ateb, sy’n symud y tocyn o’r tîm rhwydwaith i weinyddwr y gronfa ddata neu GIS. Mae cadw’r gwahaniaeth hwnnw yn yr adroddiad yn arbed un daith.

Pan fydd y prosiect yn agor gyda haenau gwag

Y tu mewn i QGIS, gwiriwch ffynhonnell gofnodedig yr haen cyn ailroi unrhyw beth. Mae priodweddau’r haen yn dangos yr union linyn cysylltu a arbedwyd gan y prosiect, ac mae cofnod cysylltiad dyblyg â gwesteiwr hŷn yn weddill cyffredin o rwydwaith swyddfa blaenorol. Nid yw ail-lwytho’r prosiect ar ôl trwsio cysylltiad bob tro’n ailddarllen y darparwr, felly tynnwch yr haen ac ychwanegwch hi eto o’r cysylltiad cywir.

Yna cadarnhewch mai’r cyfluniad dilysu sydd ynghlwm wrth yr haen yw’r un, nid un sydd ond yn bresennol yn y rhestr. Mae haen a arbedwyd â chyfluniad dilysu gwahanol yn methu’n dawel yn y panel porwr tra bo’r prawf psql ar wahân yn llwyddo.

Pan fydd yr haen yn llwytho, arbedwch y prosiect gyda llwybrau cymharol ar gyfer ffeiliau’n unig a chadwch gysylltiadau gwasanaeth wedi’u henwi ar ôl eu pwynt terfyn. Yna gall y person nesaf sy’n etifeddu’r prosiect ddweud pa westeiwr yr oedd haen wedi torri yn ei ddisgwyl heb agor tocyn.

Erthyglau cysylltiedig