Tệp tùy chọn pppd dùng chung có làm hỏng VPN khác của bạn?
Hai ứng dụng VPN dựa trên PPP có thể đọc cùng một giá trị mặc định pppd, nên bản sửa cho cái này âm thầm thay đổi cái kia. Hãy truy nguồn tùy chọn trước khi chỉnh sửa.
Bạn thêm một dòng để hồ sơ PPTP cứng đầu kết nối được, và một tuần sau ứng dụng L2TP đã chạy tốt nhiều tháng bỗng dừng. Cách hiểu hiển nhiên là hai giao thức nay xung đột. Thường gặp hơn: cả hai ứng dụng đều khởi chạy pppd, cả hai đọc cùng giá trị mặc định, và dòng bạn thêm chưa bao giờ được giới hạn cho hồ sơ bạn đang sửa. Tệp tùy chọn dùng chung chính là mối ghép, còn các giao thức không có lỗi.
Ứng dụng thừa hưởng gì khi khởi chạy
Một ứng dụng dựa trên PPP hiếm khi tự dựng dòng lệnh từ đầu. Nó khởi chạy pppd, pppd đọc giá trị mặc định của hệ thống, rồi tệp người dùng hoặc tệp terminal, rồi các đối số ứng dụng truyền vào, và ứng dụng cũng có thể trỏ tới một tệp peer. Mỗi lớp đó có thể mang theo plugin, phương thức xác thực hoặc chỉ thị định tuyến, và lớp đầu tiên đặt một tùy chọn được bảo vệ có thể khóa tùy chọn đó trước các thay đổi sau.
Vậy câu hỏi hữu ích không phải VPN nào hỏng mà là lớp nào đã cung cấp thiết lập đó. Ứng dụng tự sinh đối số trông có vẻ tự chứa nhưng vẫn thừa hưởng mọi thứ trong tệp hệ thống.
Truy nguồn dòng lệnh trước khi sửa
Hãy bắt đầu bằng việc xem tiến trình đang chạy khi kết nối đang mở. Dòng lệnh cho biết tệp nào được truyền tường minh, và bất cứ thứ gì không được nêu tên ở đó đều đến từ đường dẫn mặc định.
ps -o pid=,args= -C pppdNếu danh sách đối số có tên peer, hãy đọc tệp đó. Nếu không, thiết lập bạn đang tìm nằm ở đường dẫn dùng chung. hướng dẫn pppd liệt kê thứ tự đọc các tệp này và tùy chọn nào người dùng thường không thể ghi đè, đó là lý do một dòng viết sau đôi khi không có tác dụng gì. Một tùy chọn được bảo vệ như đường dẫn plugin không thể bị thay bằng dòng cấp người dùng viết sau, nên sửa nhầm tệp sẽ không thấy thay đổi nào.
Dòng plugin bám theo mọi ứng dụng
Plugin được nạp trong tệp hệ thống là thủ phạm tệ nhất vì nó đổi thứ mà tiến trình PPP mới cố nạp, bất kể người dùng bấm nút nào. Plugin L2TP là ví dụ kinh điển: đúng cho một hồ sơ, vô nghĩa hoặc có hại cho hồ sơ PPTP khởi đầu từ cùng giá trị mặc định.
Hãy chuyển nó sang tệp peer do ứng dụng chọn, hoặc sang thiết lập theo từng kết nối của chính ứng dụng nếu được hỗ trợ. Xóa thẳng nó sẽ sửa ứng dụng thứ hai và làm hỏng ứng dụng thứ nhất, và đó là cách những vấn đề này lan giữa các nhóm.
Kiểm tra từng ứng dụng sau khi chuyển
Thử cả hai kết nối trên cùng một máy, lần lượt từng cái, và đọc các tùy chọn đã thương lượng thay vì hộp thoại thành công. Lệnh dump bên dưới in ra tập tùy chọn mà pppd thực sự lắp ghép, và chỉ danh sách đó mới quan trọng.
sudo pppd call office debug dumpLặp lại với ứng dụng thứ hai và so sánh hai kết quả. Tùy chọn bạn vừa chuyển phải xuất hiện đúng ở một trong hai. Nếu nó xuất hiện ở cả hai, ứng dụng đang tự sinh lại nó và bản sửa thuộc về hồ sơ đó chứ không phải tệp dùng chung. Ghi lại thiết lập này giờ nằm ở đâu, ngay cạnh kết nối, để người sau không phải phát hiện lại mối ghép bằng cách làm hỏng nó một lần nữa.