ਦਫ਼ਤਰ ਦੇ ਸਰਵਰ ਉੱਤੇ ਚੱਲ ਰਹੀ ਐਪ localhost ਉੱਤੇ MySQL ਨਾਲ ਜੁੜਦੀ ਹੈ, ਤੁਸੀਂ ਉਹ ਹੋਸਟਨਾਮ ਡੈਸਕਟਾਪ ਕਲਾਇੰਟ ਵਿੱਚ ਕਾਪੀ ਕਰਦੇ ਹੋ, ਅਤੇ ਕਨੈਕਸ਼ਨ ਜਾਂ ਤਾਂ ਫੇਲ ਹੁੰਦਾ ਹੈ ਜਾਂ ਕੋਈ ਹੋਰ ਡੇਟਾਬੇਸ ਖੋਲ੍ਹਦਾ ਹੈ। VPN ਨੇ ਸ਼ਬਦ ਦੇ ਅਰਥ ਵਿੱਚ ਕੁਝ ਨਹੀਂ ਬਦਲਿਆ: localhost ਅਜੇ ਵੀ ਉਸ ਮਸ਼ੀਨ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜੋ ਕਲਾਇੰਟ ਚਲਾਉਂਦੀ ਹੈ। VPN ਨੇ ਪੈਕੇਟ ਹਿਲਾਏ, ਇੰਟਰਫੇਸ ਨਹੀਂ। ਕਿਸੇ ਰੂਟ ਨੂੰ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਤੈਅ ਕਰੋ ਕਿ ਲੈਪਟਾਪ ਨੂੰ ਕਿਹੜੇ ਸਿਰੇ ਤੱਕ ਪਹੁੰਚਣਾ ਹੈ।

ਕਦਮ 1: ਤੈਅ ਕਰੋ ਕਿ ਲੈਪਟਾਪ ਨੂੰ ਕਿਹੜੇ ਸਿਰੇ ਤੱਕ ਪਹੁੰਚਣਾ ਹੈ

ਦੋਵੇਂ ਡਿਜ਼ਾਈਨ ਜਾਇਜ਼ ਹਨ ਅਤੇ ਵੱਖਰੇ ਸਵਾਲਾਂ ਦਾ ਜਵਾਬ ਦਿੰਦੇ ਹਨ। ਸਿੱਧੀ ਪਹੁੰਚ ਦਾ ਅਰਥ ਹੈ ਕਿ ਡੇਟਾਬੇਸ ਉਸ ਨਿੱਜੀ ਪਤੇ ਉੱਤੇ ਸੁਣਦਾ ਹੈ ਜਿੱਥੇ ਟਨਲ ਪਹੁੰਚਦੀ ਹੈ, ਅਤੇ ਲੈਪਟਾਪ ਉਸ ਪਤੇ ਨਾਲ ਜੁੜਦਾ ਹੈ। ਫਾਰਵਰਡ ਕੀਤੀ ਪਹੁੰਚ ਦਾ ਅਰਥ ਹੈ ਕਿ ਡੇਟਾਬੇਸ loopback ਉੱਤੇ ਰਹਿੰਦਾ ਹੈ ਅਤੇ ਇੱਕ SSH ਸੈਸ਼ਨ ਪੋਰਟ ਨੂੰ ਤੁਹਾਡੀ ਮਸ਼ੀਨ ਤੱਕ ਲੈ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਜਾਣ-ਬੁੱਝ ਕੇ ਚੁਣੋ, ਕਿਉਂਕਿ ਦੋਵੇਂ ਮਿਲਾਉਣ ਨਾਲ ਅਜਿਹਾ ਕਨੈਕਸ਼ਨ ਬਣਦਾ ਹੈ ਜੋ ਗਲਤ ਕਾਰਨ ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ।

ਸਿੱਧੀ ਪਹੁੰਚ ਲਈ, ਡੇਟਾਬੇਸ ਹੋਸਟ ਦਾ ਆਪਣਾ ਨਿੱਜੀ ਨਾਮ ਜਾਂ ਪਤਾ ਅਤੇ ਉਸਦਾ ਪੋਰਟ ਉਸ ਤੋਂ ਲਵੋ ਜੋ ਇਸਨੂੰ ਚਲਾਉਂਦਾ ਹੈ। VPN ਗੇਟਵੇ ਦਾ ਪਤਾ ਡੇਟਾਬੇਸ ਦਾ ਪਤਾ ਨਹੀਂ ਹੈ, ਜਦੋਂ ਤੱਕ ਉਹੀ ਮਸ਼ੀਨ ਨਾ ਹੋਵੇ। ਫਿਰ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਸਰੋਤਾ ਸੱਚਮੁੱਚ ਉਸ ਇੰਟਰਫੇਸ ਨਾਲ ਬੱਝਾ ਹੈ, ਕਿਉਂਕਿ ਇੰਟਰਫੇਸ ਵੱਲ ਦਾ ਰੂਟ ਉਸ ਉੱਤੇ ਸਰੋਤਾ ਨਹੀਂ ਬਣਾਉਂਦਾ।

ਕਦਮ 2: ਪੋਰਟ ਫਾਰਵਰਡ ਕਰੋ ਸਿਰਫ਼ ਜਦੋਂ ਸਰੋਤਾ ਸਥਾਨਕ ਰਹੇ

ਜੇ ਡੇਟਾਬੇਸ ਨੂੰ ਸਿਰਫ਼ loopback ਉੱਤੇ ਰਹਿਣਾ ਹੈ, ਤਾਂ ਇਸਨੂੰ SSH ਰਾਹੀਂ ਫਾਰਵਰਡ ਕਰੋ ਅਤੇ ਸਥਾਨਕ ਸਿਰੇ ਨੂੰ ਵੀ loopback ਨਾਲ ਬੰਨ੍ਹੋ। ਖੱਬੇ ਪਾਸੇ ਦਾ ਬਾਈਂਡ ਪਤਾ ਤੁਹਾਡੇ ਲੈਪਟਾਪ ਦਾ ਹੈ; ਸੱਜੇ ਪਾਸੇ ਦਾ ਟਾਰਗਟ SSH ਸਰਵਰ ਵੱਲੋਂ ਵਿਆਖਿਆ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਿਵੇਂ OpenSSH ਸੰਦਰਭ ਦੱਸਦਾ ਹੈ। ਇਹਨਾਂ ਦੋ ਭੂਮਿਕਾਵਾਂ ਨੂੰ ਉਲਟਾਉਣਾ ਹੀ ਆਮ ਕਾਰਨ ਹੈ ਕਿ ਫਾਰਵਰਡ ਕੰਮ ਕਰਦਾ ਦਿਸਦਾ ਹੈ ਪਰ ਕਿਸੇ ਚੀਜ਼ ਨਾਲ ਨਹੀਂ ਜੁੜਦਾ।

ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:13306:127.0.0.1:3306 [email protected]
ss -ltn 'sport = :13306'

ਜੇ SSH ਡੇਟਾਬੇਸ ਹੋਸਟ ਦੀ ਬਜਾਏ ਜੰਪ ਹੋਸਟ ਉੱਤੇ ਉਤਰਦਾ ਹੈ, ਤਾਂ ਸੱਜੇ ਪਾਸੇ ਦਾ loopback ਜੰਪ ਹੋਸਟ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, ਅਤੇ ਟਾਰਗਟ ਨੂੰ ਉਸ ਪਤੇ ਉੱਤੇ ਬਦਲਣਾ ਪੈਂਦਾ ਹੈ ਜਿੱਥੇ ਉਹ ਹੋਸਟ ਪਹੁੰਚਦਾ ਹੈ। ExitOnForwardFailure ਫਾਰਵਰਡ ਸਥਾਪਤ ਕਰਨ ਵਿੱਚ ਫੇਲ੍ਹ ਹੋਣ ਨੂੰ ਫੜਦਾ ਹੈ, ਪਰ ਇਹ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ ਕਿ ਟਾਰਗਟ ਵੱਲ ਬਾਅਦ ਦੇ ਕਨੈਕਸ਼ਨ ਸਫਲ ਹੁੰਦੇ ਹਨ। ਹੋਸਟ-ਕੀ ਜਾਂਚ ਚਾਲੂ ਰੱਖੋ, ਅਤੇ ਫਾਰਵਰਡਿੰਗ ਪੋਰਟ ਨੂੰ ਸਾਰੇ ਇੰਟਰਫੇਸਾਂ ਨਾਲ ਬੰਨ੍ਹ ਕੇ ਆਪਣੇ ਪੂਰੇ LAN ਨੂੰ ਨਾ ਦਿਓ।

ਰੁਕੋ ਜੇ ਡੇਟਾਬੇਸ ਨੂੰ ਸਿਰਫ਼ loopback ਉੱਤੇ ਰਹਿਣਾ ਹੈ ਅਤੇ ਤੁਸੀਂ SSH ਵਰਤ ਨਹੀਂ ਸਕਦੇ। ਤਦ ਸਿੱਧੀ ਪਹੁੰਚ ਗਲਤ ਡਿਜ਼ਾਈਨ ਹੈ, ਥੋਪਣ ਵਾਲੀ ਕਨਫਿਗਰੇਸ਼ਨ ਨਹੀਂ।

ਕਦਮ 3: ਕਲਾਇੰਟ ਨੂੰ TCP ਉੱਤੇ ਮਜਬੂਰ ਕਰੋ

Unix ਉੱਤੇ localhost ਦਿੱਤੇ ਜਾਣ 'ਤੇ MySQL ਕਲਾਇੰਟ ਡਿਫ਼ਾਲਟ ਰੂਪ ਵਿੱਚ Unix ਸਾਕਟ ਚੁਣਦਾ ਹੈ, ਇਸ ਲਈ ਸਿਰਫ਼ ਪੋਰਟ ਬਦਲਣ ਨਾਲ ਇਹ ਅਜਿਹਾ ਸਾਕਟ ਲੱਭਦਾ ਰਹਿ ਸਕਦਾ ਹੈ ਜਿਸਦਾ ਤੁਹਾਡੇ ਫਾਰਵਰਡ ਨਾਲ ਕੋਈ ਸੰਬੰਧ ਨਹੀਂ। ਸਪਸ਼ਟ TCP ਪ੍ਰੋਟੋਕਾਲ ਅਤੇ loopback ਪਤਾ ਵਰਤੋ ਤਾਂ ਜੋ ਕਲਾਇੰਟ ਤੁਹਾਡੇ ਫਾਰਵਰਡਿੰਗ ਪੋਰਟ ਉੱਤੇ ਕਨੈਕਸ਼ਨ ਖੋਲ੍ਹੇ।

mysql --protocol=TCP --host=127.0.0.1 --port=13306 --user=DB_USER --password

ਬਿਨਾਂ ਮੁੱਲ ਵਾਲਾ ਪਾਸਵਰਡ ਵਿਕਲਪ ਭੇਤ ਨੂੰ ਕਮਾਂਡ ਲਾਈਨ ਵਿੱਚ ਰੱਖਣ ਦੀ ਬਜਾਏ ਪੁੱਛਦਾ ਹੈ, ਅਤੇ ਇਹੀ ਉਹ ਆਦਤ ਹੈ ਜੋ ਰੱਖਣ ਯੋਗ ਹੈ। ਹੋਰ ਸਾਧਨਾਂ ਦਾ ਇਸੇ ਫ਼ਰਕ ਲਈ ਆਪਣਾ ਸਵਿੱਚ ਹੈ, ਅਤੇ ਕੁਝ ਡਰਾਈਵਰ localhost ਨੂੰ ਵੀ ਖ਼ਾਸ ਤਰ੍ਹਾਂ ਲੈਂਦੇ ਹਨ। ਇਹ ਮੰਨਣ ਦੀ ਬਜਾਏ ਕਿ ਫਲੈਗ ਪਹੁੰਚ ਗਿਆ, ਜਾਂਚੋ ਕਿ ਤੁਹਾਡਾ ਕਲਾਇੰਟ ਕੀ ਕਰਦਾ ਹੈ। ਡੇਟਾਬੇਸ ਖਾਤੇ ਨੂੰ ਵੀ ਅਜਿਹੀ ਆਗਿਆ ਚਾਹੀਦੀ ਹੈ ਜੋ ਸਰਵਰ ਵੱਲੋਂ ਦੇਖੇ ਸਰੋਤ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੋਵੇ, ਅਤੇ ਉਹ ਤੁਹਾਡਾ ਲੈਪਟਾਪ ਨਹੀਂ, ਫਾਰਵਰਡਿੰਗ ਹੋਸਟ ਹੈ।

ਰੁਕੋ ਜੇ ਸਾਧਨ ਨੂੰ TCP ਉੱਤੇ ਮਜਬੂਰ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਤਦ ਦੂਜਾ ਕਲਾਇੰਟ ਵਰਤੋ, ਜਾਂ ਨਿੱਜੀ ਸਰੋਤੇ ਤੱਕ ਸਿੱਧੀ ਪਹੁੰਚ ਵਰਤੋ।

ਕਦਮ 4: ਸਾਬਤ ਕਰੋ ਕਿ ਤੁਸੀਂ ਅਸਲ ਵਿੱਚ ਕਿਹੜੇ ਸਿਰੇ ਤੱਕ ਪਹੁੰਚੇ

ਸਰਵਰ ਨੂੰ ਪੁੱਛੋ ਕਿ ਉਹ ਕਨੈਕਸ਼ਨ ਨੂੰ ਕੀ ਸਮਝਦਾ ਹੈ। ਹੋਸਟਨਾਮ, ਪੋਰਟ ਅਤੇ ਸਾਕਟ ਚਰ ਦੱਸਦੇ ਹਨ ਕਿ ਤੁਸੀਂ TCP ਰਾਹੀਂ ਆਏ ਜਾਂ ਨਹੀਂ ਅਤੇ ਕਿਹੜੇ ਸਰੋਤੇ ਨੇ ਜਵਾਬ ਦਿੱਤਾ, ਅਤੇ ਕਨੈਕਸ਼ਨਾਂ ਦੀ ਸੂਚੀ ਉਹ ਸਰੋਤ ਪਤਾ ਦਿਖਾਉਂਦੀ ਹੈ ਜੋ ਸਰਵਰ ਨੇ ਦਰਜ ਕੀਤਾ। ਉਹ ਸਬੂਤ ਕਿਸੇ ਹੋਰ ਰੂਟ ਬਦਲਾਅ ਨਾਲੋਂ ਵਧੇਰੇ ਲਾਹੇਵੰਦ ਹੈ।

mysql --protocol=TCP -h 127.0.0.1 -P 13306 -u DB_USER -p -e "SELECT @@hostname, @@port, @@socket"

ਦਰਜ ਕਰੋ ਕਿ ਤੁਸੀਂ ਕਿਹੜੇ ਸਿਰੇ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ: ਸਥਾਨਕ Unix ਸਾਕਟ, ਤੁਹਾਡਾ ਫਾਰਵਰਡਿੰਗ ਪੋਰਟ ਜਾਂ ਨਿੱਜੀ ਸਰੋਤਾ। ਇਹਨਾਂ ਤਿੰਨ ਫੇਲ੍ਹਤਾਵਾਂ ਦੇ ਉਪਾਅ ਵੱਖਰੇ ਹਨ, ਅਤੇ ਕਲਾਇੰਟ ਦੇ ਗਲਤ localhost ਨਾਲ ਗੱਲ ਕਰਦਿਆਂ VPN ਰੂਟ ਬਦਲਣਾ ਵਿਅਰਥ ਮਿਹਨਤ ਹੈ। ਨੋਟਾਂ ਵਿੱਚ SSH ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ ਡੇਟਾਬੇਸ ਪ੍ਰਮਾਣਿਕਤਾ ਵੀ ਵੱਖਰੀਆਂ ਰੱਖੋ, ਕਿਉਂਕਿ ਡੈਸਕਟਾਪ ਕਲਾਇੰਟ ਤੋਂ ਇੱਕ ਵਿੱਚ ਫੇਲ੍ਹਤਾ ਦੂਜੇ ਵਿੱਚ ਫੇਲ੍ਹਤਾ ਵਾਂਗ ਦਿਸਦੀ ਹੈ। ਫਿਰ ਕੰਮ ਮੁੱਕਣ 'ਤੇ ਫਾਰਵਰਡ ਹਟਾ ਦਿਓ।

ਸੂਚੀ ਉਦੋਂ ਮੁੱਕਦੀ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਸਿਰਾ, ਕਲਾਇੰਟ ਪ੍ਰੋਟੋਕਾਲ, ਸਰਵਰ ਵੱਲੋਂ ਦੇਖਿਆ ਸਰੋਤ ਪਤਾ ਅਤੇ ਉਸਨੂੰ ਆਗਿਆ ਦੇਣ ਵਾਲੀ ਆਗਿਆ ਦਾ ਨਾਮ ਦੱਸ ਸਕੋ। ਚਾਰ ਤੱਥ, ਅਤੇ ਅਗਲੀ ਕਨੈਕਸ਼ਨ ਸਮੱਸਿਆ ਦੁਪਹਿਰ ਦੀ ਬਜਾਏ ਕੁਝ ਮਿੰਟ ਲੈਂਦੀ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ