Điểm:1

Ngăn dịch vụ hệ thống OpenVPN bắt đầu tại nhà

lá cờ gd

Trong máy tính xách tay của mình, tôi đặt dịch vụ systemd tạo kết nối OpenVPN đến nhà của tôi và để dịch vụ này tự động khởi động khi khởi động để tôi có thể truy cập máy chủ ở nhà của mình ở bất kỳ đâu.

Vấn đề là khi tôi đã ở nhà rồi, nó vẫn kết nối với VPN và làm rối bảng định tuyến của máy tính xách tay, do đó tôi không thể truy cập máy chủ khi tôi ở nhà.

Có cách nào, tôi có thể để dịch vụ systemd bắt đầu có điều kiện không?

Cảm ơn!

Ginnungagap avatar
lá cờ gu
Bạn đã kiểm tra trang systemd unit/service/exec chưa? Tôi không ở nhà nên tôi sẽ không làm điều đó cho bạn nhưng tôi biết bạn có thể thiết lập các điều kiện, chỉ là tôi chưa bao giờ thử thứ gì đó phức tạp như thế này.
Điểm:0
lá cờ cn

Tôi không phải là chuyên gia về mạng, nhưng tôi nghĩ điều đó có thể thực hiện được nếu bạn sử dụng Ethernet ở nhà và WiFi ở nơi khác. Trong trường hợp đó, bạn sẽ có thể định tuyến giao diện WiFi của mình qua kết nối VPN.

Leon avatar
lá cờ gd
Cảm ơn! Nhưng tôi luôn sử dụng WiFi, mặc dù ở nhà. Hơn nữa, máy tính xách tay của tôi KHÔNG có giao diện lan.
Điểm:0
lá cờ gd

Tôi đăng giải pháp của mình ở đây, có lẽ nó có thể giúp được ai đó.

Tôi viết mã một tập lệnh, tập lệnh này sẽ cố gắng truy vấn địa chỉ MAC của bộ định tuyến tại nhà của tôi, nếu thành công (có nghĩa là tôi đang ở nhà), hãy dừng kết nối VPN. Và sau đó sửa đổi tệp dịch vụ systemd (vpn-to-home.service), thêm một dòng ExecStartPre=/usr/local/bin/stop-if-lan.sh.

Tập lệnh stop-if-lan.sh:

#!/bin/bash
/usr/bin/ping -4n -c 1 -q -W 1 IP_OF_ROUTER > /dev/null
MAC_ADDRESS=`arp -n | awk '/IP_OF_ROUTER/{print $3;exit}'`

nếu [ "$MAC_ADDRESS" == "MAC_OF_ROUTER" ] ; sau đó
# echo "Chúng tôi đã ở nhà."
   thoát 1
fi
thoát 0

Dịch vụ vpn-to-home.service của systemd:

[Đơn vị]
Requisite=mạng-online.mục tiêu
After=syslog.mục tiêu mạng-online.mục tiêu 

[Dịch vụ]
Loại = nhàn rỗi
RuntimeDirectory=openvpn-client
WorkingDirectory=/run/openvpn-client
RiêngTmp=true
CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_OVERRIDE

ExecStartPre=/usr/local/bin/check-if-lan.sh

ExecStart=/usr/sbin/openvpn --config /etc/openvpn/client/client-to-home.ovpn
Giới hạnNPROC=10
DeviceAllow=/dev/null rw
DeviceAllow=/dev/net/tun rw
ProtectSystem=true
ProtectHome=true
KillMode=tiến trình

[Cài đặt]
WantedBy=multi-user.target

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.