Điểm:0

Máy chủ mysql từ xa trong vùng chứa docker - truy cập bằng macvlan và wireguard?

lá cờ co

Tình huống: Một số máy chủ VPS trên khắp Hoa Kỳ đã kết nối với máy tính xách tay của tôi qua mạng lưới wireguard. Đối với mạng lưới bảo vệ dây, tôi đang sử dụng công cụ có tên là mạng bên trong (https://github.com/tonarino/innernet).

Vì vậy, về cơ bản, nó giống như máy tính xách tay và máy chủ vps của tôi nằm trên cùng một mạng nội bộ.

IP VPS = 10.32.89.1
ip máy tính xách tay = 10.32.90.1

Có vẻ như VPS và máy tính xách tay đã xác định giao diện ảo này (không chắc điều này có quan trọng không):

mạng nội bộ

Máy chủ VPS có bộ chứa mysql runig (Tôi không hiển thị cổng 3306 cho máy chủ lưu trữ). Làm cách nào tôi có thể kết nối với máy chủ mysql dockerized đó từ máy tính xách tay của mình mà không cần gắn cổng mysql vào máy chủ?

lý luận:
Tại sao tôi muốn nó theo cách này?
Bởi vì tôi không muốn làm cho nó (máy chủ mysql) hiển thị với toàn bộ internet và do đó những kẻ tấn công, nhưng đồng thời tôi muốn dễ dàng truy cập vào dữ liệu mysql từ máy tính xách tay của mình.

giải pháp khả thi:
Đó có phải là những gì docker macvlan dành cho? Tôi có cần tạo một mạng trên VPS có giao diện mạng bên trong với tư cách là cha mẹ hay thứ gì đó không? và sau đó đính kèm bộ chứa mysql của tôi vào mạng đó?

Tôi đã thử điều này:

mạng docker tạo \
-d macvlan \
--có thể đính kèm \
--subnet=172.40.110.0/24 \
--gateway=172.40.110.1 \
-o parent=innernet \
mạng hạ tầng2

Và sau đó tôi đã thử tham gia vùng chứa mysql với nó:

mạng docker kết nối máy chủ mysql infranet2

Nhưng tôi chỉ nhận được một lỗi:
root@vps:~$ sudo docker mạng kết nối infranet2mysql-server Phản hồi lỗi từ daemon: không thể tạo cổng macvlan: đối số không hợp lệ

Điểm:2
lá cờ sb

Những gì bạn có thể làm là bạn chỉ có thể hiển thị cổng của mình (3306) trên ip nội bộ, có thể truy cập qua wireguard, chẳng hạn như ip đường hầm (trái ngược với việc hiển thị cổng trên tất cả các ip (0.0.0.0/0), như điều này xảy ra theo mặc định ). Với ip đường hầm của bạn là 192.168.0.1, đây là cách bạn sẽ làm:

docker run --name mysql-server \
-p 192.168.0.1:3306:3306 \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-d mysql

Sau đó, bạn có thể truy cập máy chủ mysql từ xa của mình, nhưng không thể truy cập từ internet.

Dannyboy avatar
lá cờ co
Cảm ơn tôi đã nghĩ về điều đó - nhưng không chắc docker sẽ hoạt động như thế nào nếu mạng wireguard đột ngột ngừng hoạt động. Điều đó cũng sẽ làm giảm bộ chứa mysql chứ? Tôi đã hy vọng tìm được giải pháp trong trường hợp nếu mạng innernet/wireguard không khả dụng thì điều này sẽ không khiến vùng chứa bị hỏng. ^và tôi nghi ngờ ở trên sẽ khóa nó.
jabbson avatar
lá cờ sb
không, vùng chứa sẽ không ngừng hoạt động cùng với giao diện, vùng chứa vẫn đang chạy, nó sẽ không thể truy cập được
Dannyboy avatar
lá cờ co
cảm ơn. bạn đúng rồi. vừa thử nghiệm nó và nó hoạt động - mysql có thể truy cập được trên mạng lưới Innernet chứ không phải trên ip công cộng. không cần các loại mạng bí truyền. lưới bảo vệ dây là tuyệt vời.
Dannyboy avatar
lá cờ co
thật thú vị - thực ra - nếu mạng wireguard không hoạt động, bộ chứa mysql SẼ KHÔNG thể khởi động. Tôi đã thử nghiệm bằng cách sử dụng địa chỉ IP ngẫu nhiên và tôi đã gặp lỗi này khi cố khởi động ngăn xếp: "Lỗi khi khởi động proxy vùng đất của người dùng: nghe tcp 10.32.89.22:3306: liên kết: không thể chỉ định địa chỉ được yêu cầu". có nghĩa là tôi nghĩ rằng nếu mạng bảo vệ dây bị hỏng - ngăn xếp sẽ không thể khởi động/khởi động lại đúng cách, ảnh hưởng đến độ tin cậy....

Đă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.