বিচ্ছিন্ন নেটওয়ার্কে পৌঁছানোর জন্য আমি একটি এসএসএস -D
মোজা প্রক্সি ব্যবহার করি ।
প্রতিবার আমি এগুলিতে যুক্ত করে বিশদটি টাইপ না করে এড়াতে ~/.ssh/config
:
$ awk '/Host socks-proxy/' RS= ~/.ssh/config
Host socks-proxy
Hostname pcit
BatchMode yes
RequestTTY no
Compression yes
DynamicForward localhost:9118
তারপরে আমি একটি সিস্টেমড-ব্যবহারকারী পরিষেবা ইউনিট সংজ্ঞা ফাইল তৈরি করেছি:
$ cat ~/.config/systemd/user/SocksProxy.service
[Unit]
Description=SocksProxy Over Bridge Host
[Service]
ExecStart=/usr/bin/ssh -Nk socks-proxy
[Install]
WantedBy=default.target
আমি ডিমনকে নতুন পরিষেবার সংজ্ঞাগুলি পুনরায় লোড করতে দিয়েছি, নতুন পরিষেবা সক্ষম করে দিয়েছি, এটি শুরু করেছি, এর স্থিতিটি পরীক্ষা করেছি এবং যাচাই করেছি, যা শুনছে:
$ systemctl --user daemon-reload
$ systemctl --user list-unit-files | grep SocksP
SocksProxy.service disabled
$ systemctl --user enable SocksProxy.service
Created symlink from ~/.config/systemd/user/default.target.wants/SocksProxy.service to ~/.config/systemd/user/SocksProxy.service.
$ systemctl --user start SocksProxy.service
$ systemctl --user status SocksProxy.service
● SocksProxy.service - SocksProxy Over Bridge Host
Loaded: loaded (/home/alex/.config/systemd/user/SocksProxy.service; enabled)
Active: active (running) since Thu 2017-08-03 10:45:29 CEST; 2s ago
Main PID: 26490 (ssh)
CGroup: /user.slice/user-1000.slice/user@1000.service/SocksProxy.service
└─26490 /usr/bin/ssh -Nk socks-proxy
$ netstat -tnlp | grep 118
tcp 0 0 127.0.0.1:9118 0.0.0.0:* LISTEN
tcp6 0 0 ::1:9118 :::* LISTEN
এটি উদ্দেশ্য হিসাবে কাজ করে। তারপর আমি, ম্যানুয়ালি পরিষেবা শুরু করা বা স্থায়ীভাবে চলমান এড়াতে চেয়েছিলেন autossh ব্যবহার দ্বারা systemd হল সকেট-সক্রিয়করণ অন-ডিমান্ড (পুনরায়) ডিম ছাড়ার জন্য। এটি কাজ করে না, আমি মনে করি (আমার সংস্করণ) ssh
সকেট ফাইল-বর্ণনাকারী গ্রহণ করতে পারে না।
আমি ডকুমেন্টেশন পেয়েছি ( 1 , 2 ), এবং 2 "র্যাপার" পরিষেবা, একটি "পরিষেবা" এবং "সকেট" তৈরি করতে- টোল ব্যবহার করার জন্য একটি উদাহরণ পেয়েছি systemd-socket-proxyd
:
$ cat ~/.config/systemd/user/SocksProxyHelper.socket
[Unit]
Description=On Demand Socks proxy into Work
[Socket]
ListenStream=8118
#BindToDevice=lo
#Accept=yes
[Install]
WantedBy=sockets.target
$ cat ~/.config/systemd/user/SocksProxyHelper.service
[Unit]
Description=On demand Work Socks tunnel
After=network.target SocksProxyHelper.socket
Requires=SocksProxyHelper.socket SocksProxy.service
After=SocksProxy.service
[Service]
#Type=simple
#Accept=false
ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:9118
TimeoutStopSec=5
[Install]
WantedBy=multi-user.target
$ systemctl --user daemon-reload
মারা যাওয়া বা খুন না হওয়া পর্যন্ত এটি কাজ করে বলে মনে হচ্ছেssh
। তারপরে এটি কখন হওয়া উচিত পরবর্তী সংযোগের চেষ্টাতে পুনরায় স্প্যান করবে না।
প্রশ্নাবলী:
- / Usr / বিন / ssh সত্যিই systemd- পাস সকেট গ্রহণ করতে পারবেন না? না শুধুমাত্র নতুন সংস্করণগুলি? আমার 2 বছর বয়সী ডেবিয়ান 8.9 থেকে এক ।
- কেবলমাত্র রুটের ইউনিটগুলি
BindTodevice
কী বিকল্পটি ব্যবহার করতে পারে ? - পুরানো টানেলটি মারা যাওয়ার পরে কেন আমার প্রক্সি পরিষেবাটি প্রথম নতুন সংযোগে সঠিকভাবে শ্বাস ছাড়ছে না?
- এটি কোনও "অন-ডিমান্ড এসএস মোজা প্রক্সি" সেট আপ করার সঠিক উপায়? যদি না হয় তবে কীভাবে করবেন?
autossh
।
autossh
সংযোগটি ব্যর্থ হলে পুনরায় সংযোগের যত্ন নেওয়া উচিত (যদিও এটি সিস্টেম-পদ্ধতি নয়)।