Firefox khởi chạy trong namespace đã chuyển URL cho một instance đang tồn tại
Một lệnh của trình duyệt có thể chuyển URL cho một tiến trình đang chạy trong namespace khác. Hãy xác nhận instance nào thực hiện yêu cầu trước khi động vào định tuyến.
Một lệnh chạy bên trong namespace của VPN, một cửa sổ Firefox xuất hiện, và trang vẫn đi ra qua kết nối thông thường. Cấu hình định tuyến có lẽ không phải thứ đầu tiên cần dựng lại. Hãy kiểm tra xem lệnh đã tạo instance trình duyệt mà bạn mong đợi, hay đã chuyển URL cho một instance đang chạy ở nơi khác. Sự khác biệt đó giải thích kết quả trong một bước và tiết kiệm một giờ với nftables.
Dấu hiệu là cửa sổ xuất hiện ngay lập tức, không có khởi động nguội.
Cửa sổ mới không phải instance mới
Các ứng dụng máy tính để bàn thường tái sử dụng một tiến trình đang tồn tại. Một trình khởi chạy bên trong một namespace mạng không di chuyển một bên nhận đang chạy vào namespace đó, vì bên nhận chưa bao giờ là một phần của lần khởi chạy. Hành vi điều khiển từ xa của Firefox gắn với hồ sơ: khởi chạy với một hồ sơ đang được dùng sẽ chuyển các đối số cho chủ sở hữu của nó. Cửa sổ mới là thật; đường mạng mới thì không.
Duyệt web riêng tư và tùy chọn cửa sổ mới không phải là các điều khiển cách ly mạng.
Cờ dòng lệnh chỉ ảnh hưởng đến chế độ cửa sổ cũng vậy. Nếu hồ sơ đang bận, yêu cầu đi đến tiến trình sở hữu nó, và tiến trình đó giữ nguyên namespace mà nó đã khởi chạy.
Buộc một instance riêng trên một hồ sơ riêng
Hãy dùng một hồ sơ chuyên dụng được tạo qua quy trình hồ sơ được trình duyệt hỗ trợ, và khởi chạy nó một cách rõ ràng với hồ sơ đó. Trong các bản dựng Firefox hỗ trợ việc này, --new-instance yêu cầu một instance mới thay vì một cửa sổ bên trong một instance đang tồn tại. Hãy xem đầu ra trợ giúp của chính bản dựng đã cài, vì các cờ có sẵn khác nhau theo phiên bản.
Đừng cố mở cùng một hồ sơ đang hoạt động cùng lúc, và đừng coi cảnh báo rằng hồ sơ đang được dùng là hướng dẫn xóa các tệp khóa.
Hãy chạy trình duyệt dưới người dùng thông thường không phải root của nó. Cấu hình mạng thường cần quyền quản trị, và thật hấp dẫn khi cấp cho trình duyệt những quyền tương tự vì nó là một phần của cùng thí nghiệm. Trình duyệt đồ họa không cần những quyền đó, và chạy nó dưới root tạo ra một nhóm vấn đề hồ sơ và quyền riêng. Hãy giữ đặc quyền và đường mạng như hai quyết định độc lập.
Kiểm tra tiến trình nào mang lưu lượng
Trên Linux, namespace mạng của một tiến trình hiển thị qua liên kết namespace của nó. Hãy đọc nó cho tiến trình mà bạn cho là đang thực hiện yêu cầu, rồi cho tiến trình thực sự làm việc đó.
readlink /proc/ACTUAL_PID/ns/net
Trình duyệt chạy nhiều tiến trình, nên danh tính quan trọng: tiến trình nội dung tạo kết nối có thể không phải tiến trình bạn kiểm tra đầu tiên. Hãy so sánh liên kết với namespace mà bạn dự định, và xác nhận bằng một yêu cầu mới, vô hại mà bạn có thể quy cho một instance. Quy gán chính là toàn bộ bài kiểm tra. Nếu bạn không thể nói tiến trình nào đã tạo kết nối, bạn chưa kiểm tra namespace.
Khi namespace thực sự sai
Đôi khi trình khởi chạy thực sự thất bại và instance mới khởi động trong namespace sai. Hãy kiểm tra dịch vụ hoặc trình bọc đã tạo ra nó, vì một unit hoặc một mục trên màn hình có thể mất namespace khi được thực thi lại qua bus phiên. Sau đó hãy kiểm tra lại từ một shell bên trong namespace đúng trước khi đổ lỗi cho trình duyệt. Một biến tại một thời điểm là cách duy nhất để điều này vẫn có thể chẩn đoán.
Chia sẻ màn hình cũng không chia sẻ resolver.
Nếu tiến trình ở trong namespace đúng và việc phân giải tên vẫn thất bại,hãy điều tra môi trường resolver của nó như một vấn đề riêng. Không thay đổi định tuyến nào khác có thể di chuyển một yêu cầu đã được chuyển cho instance sai trước khi nó bắt đầu.