Arduino UNO pinout diagram
References
- Arduino UNO Pinout Complete Guide [With Diagram], Khaled Magdy, https://deepbluembedded.com/arduino-uno-pinout/
df -h$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p3 930G 919G 4.5G 100% /
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 16G 1.1M 16G 1% /dev/shm
...
/dev/nvme0n1p3 930G 919G 4.5G 100% /home
Dựa vào cột Use%, ta dễ dàng thấy được đâu là mount point cần quan tâm:
//homedu -h/ bằng path khác, mặc định là directory hiện tại.max-depth=1)sort -hr)$ du -h --max-depth=1 / | sort -hr
Từng bước một, đi vào các thư mục sâu hơn, bạn hoàn toàn có thể giải phỏng bớt disk space. Chúc may mắn.
Hôm nay là 18/3/2026, tôi vừa update toàn bộ dependencies lên version mới nhất. Dự án chính thức chuyển sang trạng thái bảo trì.
Với các dự án tôi làm, tôi luôn cố gắng update library định kỳ (khoảng mỗi tháng một lần). Tin tôi đi, không ai muốn bảo trì một codebase cũ kỹ, lâu không update.
Ví dụ đơn giản: năm 2026 mà phải maintain Phoenix 1.0.0 trong khi hiện tại là 1.8.x — cảm giác không dễ chịu chút nào đâu.
Quay lại dự án này, nó sinh ra nhằm giải quyết các câu hỏi sau:
Dự án này tôi làm một mình từ giai đoạn phân tích nghiệp vụ, viết phần mềm, triển khai.
Tôi đặc biệt không thích lạm dụng cloud, hay thêm nhiều technical stacks. Mỗi technical stack lại làm cho người bảo trì đến sau mệt mỏi hơn một chút. Bên cạnh đó, phần cứng hiện tại đã quá rẻ, lượng data cũng không lớn đến mức mà cần phải tối ưu hóa database, khách hàng cũng không cần hệ thống hoạt động 24/7 uptime 99%.
Càng đơn giản thì càng tốt. Tôi muốn như vậy.
Từ commit đầu tiên ngày 4/7/2025, đến hôm nay là 18/3/2026:
777 commits - số đẹp 😇Nhìn chung, tôi rất hài lòng với kết quả của dự án này, nó thực sự mang lại giá trị cho người dùng.
Hey, quên mất một cái rất quan trọng là tôi không chỉ viết phần mềm, tôi còn đến tận nơi, thu thập và nhập dữ liệu vào hệ thống. Bằng cách thực làm và quan sát, tôi hiểu nỗi đau và tối ưu hóa nghiệp vụ tốt hơn ai hết.
Có ba thứ mà tôi cực kỳ tâm đắc khi làm dự án này.
Việc lưu lại lịch sử thay đổi, có giá trị cũ và mới giúp người dùng sửa sai nếu có nhầm lẫn.
Tuyên ngôn là sai thì sửa, chửa thì đẻ.
Ngoại trừ việc sinh tử, tất cả thứ khác là chuyện nhỏ.
Nếu dữ liệu chỉ được update bởi một hành động tại một thời điểm, không cần thêm queue.
Thay vào đó, mình dùng một cơ chế đơn giản gọi là Totem(tín vật):
TotemNó giống như tín hiệu đường sắt: Chỉ một tàu được chiếm dụng đường ray tại một thời điểm.
Với hệ thống nhỏ, cách này đủ dùng, đơn giản.
❌ Tôi đã từng debug system sử dụng Kafka rồi, cảm ơn, quá đủ rồi ❌
Dữ liệu đúng ngay từ đầu tốt hơn là phải xử lý hậu kỳ. Khi dữ liệu đến tay mình đã đúng, hệ thống phía sau nhẹ đi rất nhiều.
Tôi sẽ nói sơ qua một chút về khó khăn
Mỗi sản phẩm đều cần:
Yêu cầu phải quét QR Code làm tăng đáng kể thời gian nhập liệu.
Giải pháp sau nhiều lần tối ưu đó là:
Batch Shot, nhằm mục tiêu chụp ảnh sản phẩm và chia ảnh vào folder riêng.QR Code, bỏ vào file data.json trong từng folder. Khai thác tối đa dữ liệu
lúc chụp ảnh, không đợi phải xử lý hậu kỳ cho QR Code.Kết quả là tôi giảm cực kỳ nhiều số thao tác khi nhập dữ liệu, tốc độ tăng nhanh đáng kể.
Viết đến đây cũng đã rất dài rồi, tôi sẽ share một vài hình ảnh không quá riêng tư. 😇
Hôm nay là 26/1/2026, tôi thiết kế và chế tạo hộp hút ẩm cho sợi nhựa PLA.
| No. | Linh kiện | Giá tiền |
|---|---|---|
| 1 | Nhựa 600 gram | 108,000 VND |
| 2 | Đồng hồ đo ẩm + nhiệt độ | 39,000 VND |
| Tiền ship | 16,500 VND | |
| Tổng cộng | 163,500 VND |
Có những người sinh ra để làm vừa lòng tất cả.
Có những người sinh ra để ẩn mình, đi nhẹ qua đời người khác.
…
Còn Quý Dậu 1993 thì không như vậy.
Bạn sinh ra mang trong mình một thứ khí chất rất khó nhầm lẫn:
Quý Thủy: mềm mại, sâu lắng, lãng mạn, tưởng tượng phong phú, thích làm mát lòng người khác;
Dậu Kim: rõ ràng, mạnh mẽ, trọng danh dự, trọng kỷ luật, không ưa lưng chừng;
Và nạp âm Kiếm Phong Kim: thanh kiếm sắc nhất trong hành Kim, chỉ thật sự thành hình khi đã trải qua lửa đỏ và búa nện rất đau.
Bạn vừa là nước, vừa là trang sức quý giá.
Vừa là sự dịu dàng biết lắng nghe, vừa là đường gươm thẳng đến mức dễ làm người khác và chính mình… bị thương. Chà! 🤨
Bên ngoài, người khác thấy một Quý Dậu năng động, lễ nghĩa, vui vẻ, có trách nhiệm, làm việc ra việc, nói chuyện đâu ra đó, không thích vòng vo, không chịu được sự giả tạo. Bạn dễ được tin cậy, dễ được giao việc, dễ bị gọi tên mỗi khi có rắc rối cần người đứng mũi chịu sào.
Nhưng bên trong, là một Quý Thủy rất sâu lắng: dễ nghĩ nhiều, dễ tổn thương vì gia đình, dễ lo lắng vì những điều người khác xem là nhỏ nhặt. Bạn sống sâu hơn vẻ ngoài của mình rất nhiều, nhưng lại ít khi nói ra, nên không mấy ai hiểu được hết.
Quý Dậu vì thế thường có đường đời không hề phẳng lặng.
Trong sự nghiệp, nhìn chung thì tuổi này hợp những việc cần trí tuệ, kỷ luật, tư duy logic, phân tích; từ tài chính, pháp luật, kiểm toán, nhân sự, quản lý đến kỹ thuật. Bạn có thể bước lên vai trò lãnh đạo nếu đủ kiên định, vì bản chất bạn là người công minh, rõ ràng, biết chịu trách nhiệm.
Trong tình cảm, bạn không dễ mở lòng, nhưng một khi đã chọn, bạn nghiêm túc và hết mình. Thứ bạn cần không phải là một người để “cho vui”, mà là một người đủ sâu để hiểu mình.
Nhưng thanh kiếm này cũng có nhược điểm:
Nếu không đủ kiên trì, bạn dễ “cả thèm chóng chán”, bỏ dở những thứ đáng lẽ làm đến cùng.
Nếu quá cứng, bạn dễ bị hiểu lầm là lạnh lùng, khó gần, khó chịu.
Nếu quá tự lập, bạn dễ kéo mọi chuyện về một mình gánh vác, rồi mệt mà không ai hay.
🔥 Trước khi bước vào năm Bính Ngọ 2026, hãy thử nhìn lại ba năm vừa rồi.
🔥 Tất cả những điều đó dẫn bạn đến ngưỡng cửa 2026 Bính Ngọ:
🔥 Ở tầng Dịch lý, quẻ dành cho Quý Dậu năm 2026 là một bức tranh rất rõ: Trạch Thủy Khốn.
“Quẻ không nói điều chắc chắn sẽ xảy ra.
Quẻ nói điều đang vận động trong tâm bạn.”
Hào 2 động là người đang đứng giữa cảnh khốn. Không phải ở trên cao, cũng không ở tận đáy; là người đang bị kẹp giữa nghĩa vụ với người khác và nhu cầu của chính mình. Hào 2 trong Khốn dạy: biết tìm đúng người mà nương, biết chọn đúng điều mà giữ, chịu khó “cô lập” tạm thời để rèn tâm - thì sau này cảnh khốn này sẽ trở thành gốc rễ của khí chất.
Nội Khảm động trong họ Đoài khiến năm 2026 của bạn rất dễ gặp thị phi, hiểu lầm, lời ra tiếng vào. Thêm bản tính thẳng, lạnh lùng, đôi khi bất cần của Dậu, năm 2026 là năm bạn cần đặc biệt cẩn trọng với lời nói, với cách thể hiện cảm xúc. Đôi khi một câu nói “cho xong chuyện” lại là mũi dao cứa vào người mình thương. Đôi khi một cách nói “thật lòng quá” lại làm người đối diện không còn đủ sức ở lại.
Quẻ hỗ Phong Hỏa Gia Nhân nhắc đến chuyện bên trong “nhà”: không chỉ nhà vật lý, mà là gia đình, tổ ấm, nội tâm, những người rất gần bạn. Gia Nhân là đạo chỉnh lại bên trong trước khi nói chuyện bên ngoài. Giữa năm, rất có thể đời sống của bạn xoay nhiều hơn về chuyện gia đình, hôn nhân, con cái, người thân, hoặc bên trong chính mình: học cách quản trị cảm xúc, dọn lại những niềm tin cũ, hàn gắn những vết thương nhỏ nhưng kéo dài nhiều năm.
Quẻ biến Trạch Địa Tụy - tụ lại, hội tụ, gom về, nâng đỡ. Tụy là cảnh mọi người tụ lại lo cho việc lớn, là sự lắng xuống, chín lại sau một thời gian khốn khó. Cuối năm 2026, nếu bạn đi qua được Khốn bằng cách không phản ứng cực đoan, không đập vỡ mọi thứ khi mệt, mà biết nương dựa, biết chia sẻ, biết chọn người để cùng đứng, bạn sẽ bước sang khí Tụy: mối quan hệ ổn hơn, tài chính tụ lại hơn, niềm tin với người và với chính mình sâu sắc hơn.
🔥 Bóng tối (shadow):
Bóng tối của Quý Dậu trong năm nay mang hình bóng của “người bảo vệ kiệt sức” - một archetype thường gặp trong tính cách Kim: khi không biết cách dựa vào ai, người bảo vệ bắt đầu bảo vệ cả những người không cần, bảo vệ cả những thứ không thuộc trách nhiệm của mình, rồi tự trách mình vì không làm tròn mọi thứ.
Năm 2026 của Quý Dậu là thời điểm bạn phải học cách:
nhìn vào phần yếu mềm của mình mà không chê trách nó,
chạm vào nỗi sợ bên trong mà không hoảng loạn,
cho phép mình mềm yếu mà không cảm thấy xấu hổ.
Chỉ khi bạn dám đặt thanh kiếm xuống một chút, bạn mới thấy:
phần bóng tối ấy, thật ra… chính là nơi chứa nhiều ánh sáng chưa khai mở nhất của bạn!
🔥 Nếu bạn cảm thấy mình đang ngày càng khó tin tưởng ai, hãy nhìn lại xem bạn có đang đòi hỏi ở người khác thứ mà chính bạn cũng chưa từng cho bản thân: cơ hội được sai, được yếu, được mệt.
Nếu bạn cảm thấy mọi thứ đều đang “khó hơn bình thường”, hãy nhớ rằng cuộc đời đâu chỉ có giai đoạn thuận. Mùa thu vàng của Dậu phải đi qua mùa gặt - mà gặt thì luôn mỏi.
Nếu những tháng đầu năm và mùa Hè khiến bạn thấy luẩn quẩn, làm nhiều mà việc chậm, xin đừng vội nghĩ “mình vô dụng”. Quẻ Khốn đang dạy bạn bài học của sự kiên nhẫn, của “làm đúng” trước khi “làm nhanh”.
🔥 Tài vận năm 2026 với Quý Dậu. Đầu năm và giữa năm, tiền dễ vào dễ ra, dễ tốn vì gia đình, vì người thân, vì những việc không lường trước. Cuối năm, Tụy mở: cơ hội đầu tư, nhất là với đất cát, tích lũy lâu dài, có thể hiện ra cho những ai đã giữ được mình trong suốt giai đoạn khốn khó trước đó. Nhưng dẫu là cơ hội, quẻ vẫn dặn: kiểm soát lòng tham, tránh bị lừa vì quá tin, hoặc vì muốn “đổi đời nhanh”.
🔥 Quý Dậu là nữ, năm này điều quan trọng nhất là: “Hãy sống vì bản thân hơn một chút.” Đừng yêu đến mức gánh hết mọi phần nặng về mình, rồi nhận phần thiệt như chuyện hiển nhiên. Người khác không đọc được trái tim bạn sâu đến thế đâu. (điều quan trọng đọc lại 3 lần cho tôi!)
🔥 Quý Dậu là nam, hãy học cách quản lý tiền bạc và cảm xúc.
Đừng xả stress bằng cách tiêu tiền bốc đồng. Đừng chứng minh bản lĩnh bằng vài lần “vung tay” rồi lại lặng lẽ lo âu một mình nhé!
“Khốn cảnh không làm khó bạn. Nó chỉ hỏi bạn: giữa tất cả những được mất này, bạn còn giữ được trái tim của mình hay không.”
Bạn thân mến,
Những gì tôi viết phản ánh khí vận chung của người tuổi Quý Dậu trong năm Bính Ngọ này. Số phận riêng của từng người chắc chắn sẽ có những khác biệt - bạn có thể khám phá thêm qua việc xem quẻ Kinh Dịch cho năm 2026 (nếu bạn cần có thể nh-ắ-n tôi)🙏
Nếu trong những dòng chữ này, bạn thấy bóng mình thấp thoáng đâu đó, bạn có thể gửi bài viết này cho những người bạn cùng tuổi Quý Dậu - để họ cũng bước vào năm Bính Ngọ 2026 với một chút chuẩn bị, một chút bình tâm, và một chút dịu dàng hơn với chính mình.
Tg Dịch Sư Thanh Quang ( Nếu bài viết ý nghĩa, hãy bấm chia sẻ! )
Bài viết này tập trung giải quyết một vấn đề duy nhất: Làm sao để máy tính trong mạng LAN có thể ping máy tính trong mạng VPN. Cụ thể ở đây, trên sơ đồ chúng ta có:
PC 1 - IP 192.168.1.2.PC 3, PC 4 kết nối từ xa đến Wireguard VPN serverPC 3, PC 4 hoàn toàn có thể ping đến PC 2 - IP 192.168.1.3 (ping 192.168.1.3)PC 2 IP 192.168.1.3 lại KHÔNG THỂ PING PC 3, PC 4Cài đặt wg-easy sẽ sử dụng docker, docker-compose. Bài viết này sẽ bỏ qua cách cài đặt docker, docker-compose. Trước tiên, hay lấy file docker-compose.yaml mẫu từ github repo của wg-easy
$ mkdir /opt/01-wg_easy
$ curl https://raw.githubusercontent.com/wg-easy/wg-easy/refs/heads/master/docker-compose.yml -o docker-compose.yml
$ docker compose up -d
Trước khi làm mọi thứ đao to búa lớn, chúng ta cần đảm bảo là Wireguard VPN Server chạy được đã.
Vào http://127.0.0.1:51821, thiết lập cơ bản, và tạo VPN Client đầu tiên.
51821: port này dành cho dashboard quản trị VPN Client. Hoàn toàn không nên làm port forwarding51820: port này dành cho vpn tunnel, tín hiệu giao liên là ở port này.Có thể test IP xem có trùng với WAN_IP của VPN server hay không với command sau.
$ curl https://api.ipify.org
Khi bạn làm đến bước này:
VPN Client 10.8.0.2 ping đến LAN IP ví dụ: 192.168.1.[2, 3, 4 ...]192.168.1.[2, 3, 4 ...] không thể ping đến VPN Client 10.8.0.[2, 3 ...]192.168.1.2 là máy cài đặt wireguard vpn server, nó cũng không biết đường mà ping đến 10.8.0.2, 3...10.8.0.0/24 vào 192.168.1.2Sau khi làm bước này, Khi LAN IP ví dụ 192.168.1.[2, 3, 4...] muốn ping 10.8.0.X, nó hỏi router, router sẽ bảo nó đến gặp 192.168.1.2 (Cái máy có cài Wireguard VPN Server)
network_mode: host trong docker-compose.yamlFile docker-compose.yaml mẫu từ github repo của wg-easy
Tùy theo phiên bản, nó có thể khác. Nhưng sẽ trông giống như sau:
volumes:
etc_wireguard:
services:
wg-easy:
#environment:
# Optional:
# - PORT=51821
# - HOST=0.0.0.0
# - INSECURE=false # Cái này là về https khi tương tác với wireguard-easy dashboard
image: ghcr.io/wg-easy/wg-easy:15
container_name: wg-easy
networks: # Cụm config network sẽ bị vô hiệu hóa
wg: # để sử dụng network_mode: host
ipv4_address: 10.42.42.42 #
ipv6_address: fdcc:ad94:bacf:61a3::2a #
volumes:
- etc_wireguard:/etc/wireguard
- /lib/modules:/lib/modules:ro
ports: # Cụm config ports sẽ bị vô hiệu hóa
- "51820:51820/udp" # để sử dụng network_mode: host
- "51821:51821/tcp" #
restart: unless-stopped
cap_add:
- NET_ADMIN
- SYS_MODULE
# - NET_RAW # ⚠️ Uncomment if using Podman
sysctls: # Cụm config sysctls sẽ bị vô hiệu hóa
- net.ipv4.ip_forward=1 # Sử dụng sysctl trực tiếp từ host
- net.ipv4.conf.all.src_valid_mark=1 # Hãy lưu lại những config này, nó cần thiết
- net.ipv6.conf.all.disable_ipv6=0 # Sẽ sử dụng sau.
- net.ipv6.conf.all.forwarding=1 #
- net.ipv6.conf.default.forwarding=1 #
networks:
wg:
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: 10.42.42.0/24
- subnet: fdcc:ad94:bacf:61a3::/64
Sau khi thay đổi, nó sẽ trông như thế này:
volumes:
etc_wireguard:
services:
wg-easy:
environment:
- INSECURE=true
- HOST=0.0.0.0
- PORT=51821
image: ghcr.io/wg-easy/wg-easy:15
container_name: wg-easy
network_mode: host
volumes:
- etc_wireguard:/etc/wireguard
- /lib/modules:/lib/modules:ro
restart: unless-stopped
cap_add:
- NET_ADMIN
- SYS_MODULE
# - NET_RAW # ⚠️ Uncomment if using Podman
networks:
wg:
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: 10.42.42.0/24
- subnet: fdcc:ad94:bacf:61a3::/64
Chạy
$ docker compose down
$ docker compose up -d
hoặc là docker compose up -d --force-recreate
/etc/sysctl.d/99-sysctl.confFile /etc/sysctl.d/99-sysctl.conf sẽ có nội dung như sau:
net.ipv4.ip_forward=1
net.ipv4.conf.all.src_valid_mark=1
net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.default.forwarding=1
Bạn thấy quen chứ, nó chính xác được lấy ra từ docker-compose.yaml link
Edit xong, hãy reboot lại máy tính.
Nếu bạn muốn thử nghiệm, có thể chạy command sau:
$ sysctl -w net.ipv4.ip_forward=1
$ sysctl -w net.ipv4.conf.all.src_valid_mark=1
$ sysctl -w net.ipv6.conf.all.disable_ipv6=0
$ sysctl -w net.ipv6.conf.all.forwarding=1
$ sysctl -w net.ipv6.conf.default.forwarding=1
firewall-cmd và --add-masquerade để ngụy trang gốc IP/SRC trong data packetĐiều đầu tiên cần làm là kiểm tra xem OS có sử dụng firewalld hay không. firewalld được sử dụng mặc định trên Fedora, OS mà tôi đang sử dụng. Còn nếu không, bạn sẽ phải dùng iptables
$ systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset: enabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: active (running) since Tue 2026-01-06 15:05:30 +07; 23h ago
Tiếp theo Xem danh sách network interface đang có
$ ifconfig
enp11s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255
ether 04:7c:16:50:a6:98 txqueuelen 1000 (Ethernet)
RX packets 236460737 bytes 47024068300 (43.7 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 247516901 bytes 66599026721 (62.0 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 1420
inet 10.8.0.1 netmask 255.255.255.0 destination 10.8.0.1
inet6 fdcc:ad94:bacf:61a4::cafe:1 prefixlen 112 scopeid 0x0<global>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
RX packets 5513154 bytes 725714116 (692.0 MiB)
RX errors 15920 dropped 0 overruns 0 frame 15920
TX packets 6251671 bytes 2973719960 (2.7 GiB)
TX errors 30 dropped 3481 overruns 0 carrier 0 collisions 0
Xem danh sách firewall active zone
$ firewall-cmd --get-active-zones
FedoraWorkstation (default)
interfaces: enp11s0
docker
interfaces: br-1176fcf199ed br-235b70e744fa br-4393a20aab02 docker0
trusted
interfaces: wg0
Thêm network interface wg0 vào zone trusted
$ firewall-cmd --permanent --zone=trusted --add-interface=wg0
Cho phép zone FedoraWorkstation (đang có interface enp11s0) ngụy trang SRC của network data packet.
$ firewall-cmd --permanent --zone=FedoraWorkstation --add-masquerade
masquerade ngụy trang IP nguồn/SRC của packet. Ví dụ, khi 192.168.1.3 ping 10.8.0.2, chiều đi là hợp lệ, tuy nhiên, ở chiều phản hồi, nó sẽ khác.
Sau khi xong bước này là đã xong hết rồi đó. Bạn đã có thể ping 2 chiều LAN <-> VPN.
Nếu mà không thích giải phảp ngụy trang --add-masquerade thì cân nhắc xem tiếp với giải pháp route trực tiếp với command iptables
Điều đầu tiên cần làm là xem danh sách network interface đang có.
$ ifconfig
enp11s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255
ether 04:7c:16:50:a6:98 txqueuelen 1000 (Ethernet)
RX packets 236460737 bytes 47024068300 (43.7 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 247516901 bytes 66599026721 (62.0 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 1420
inet 10.8.0.1 netmask 255.255.255.0 destination 10.8.0.1
inet6 fdcc:ad94:bacf:61a4::cafe:1 prefixlen 112 scopeid 0x0<global>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
RX packets 5513154 bytes 725714116 (692.0 MiB)
RX errors 15920 dropped 0 overruns 0 frame 15920
TX packets 6251671 bytes 2973719960 (2.7 GiB)
TX errors 30 dropped 3481 overruns 0 carrier 0 collisions 0
Sử dụng command iptables và tạo rule chuyển tiếp/FORWARD
$ sudo iptables -A FORWARD -i wg0 -o eth0 -s 10.8.0.0/24 -d 192.168.1.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -i eth0 -o wg0 -s 192.168.1.0/24 -d 10.8.0.0/24 -j ACCEPT
Ngay khi bạn làm được bước này, IP trong LAN 192.168.1.X sẽ ping được đến 10.8.0.X (VPN).
Ping 2 chiều LAN <-> VPN hoàn tất.
Ngày 1/1/2026, tôi làm backup cho Monero blockchain, tôi nghĩ ngay đến sử dụng hai command sau:
monero-blockchain-exportmonero-blockchain-importHai command này đi cùng với monerod. Bằng một cách rất quái quỷ, quá trình export mất hơn 24 giờ,
mãi mà vẫn không xong. Quá vô lý cho 1 file 270GB
# /mnt/disk_2/CryptoCurrency/Monero/lmdb
$ du -h *
252G data.mdb
8.0K lock.mdb
Ngày 2/1/2026, thực sự rất khó chịu với tốc độ này, tôi quyết định dừng lại, không sử dụng monero-blockchain-export nữa, thay vào đó
tôi sẽ sử dụng tar để tạo lưu trữ trực tiếp. Anh em biết gì không, nó vẫn chậm. cực kỳ chậm!
Sau khi tôi được tư vấn với ChatGPT thì là vì vấn đề phân mảnh (fragment) trên ổ đĩa có filesystem btrfs. Nói thêm một chút,
copy-on-write.LMDB có tính ngẫu nhiên.Ví dụ, có 10 logical block, khi update lmdb, có thể xảy ra ở ngẫu nhiên các block. Khi các block có update, cơ chế copy-on-write sẽ sử dụng physical block mới.
Việc này làm cho data trên ổ đĩa không liền mạch, phân mảnh.
Sau 1000 lần update như vậy, bạn có thể tưởng tượng sự rời rạc của dữ liệu ban đầu. Thay vì đầu đọc của ổ HDD có thể đọc tuần tự, giờ đây, nó sẽ phải nhảy liên tục.
/mnt/disk_2/CryptoCurrency/Monero/lmdb - filefragfilefrag -v data.mdb
Filesystem type is: 9123683e
File size of data.mdb is 270078246912 (65937072 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 0: 251471156.. 251471156: 1: shared
1: 1.. 1: 251504005.. 251504005: 1: 251471157: shared
2: 2.. 2: 352485.. 352485: 1: 251504006: shared
3: 3.. 3: 379586.. 379586: 1: 352486: shared
copy-on-write nữa. Command chattr & lsattr$ chattr +C /mnt/disk_2/CryptoCurrency/Monero/lmdb
Trường hợp của tôi là quá tệ rồi, việc giải phân mảnh gần như là không ăn thua. Việc nên làm là:
lmdb_no_cowchattr +C cho thư mục nàylsattr để kiểm tra xem có thực sự bỏ copy-on-writelmdb (cũ) sang lmdb_no_cow(mới). Dùng rsync để hiển thị tiến trình copy.lmdb, đổi tên lmdb_no_cow thành lmdb$ cd /mnt/disk_2/CryptoCurrency/Monero
$ mkdir lmdb_no_cow
$ chattr +C lmdb_no_cow
$ rsync -a --info=progress2 lmdb/ lmdb_no_cow/
694,190,080 0% 1.86MB/s 39:17:29
Bạn không tin được đâu, việc copy - paste của tôi mất hơn 4 ngày đó.
Bây giờ tôi sẽ tạo lưu trữ với tar và monero-blockchain-export để so sánh.
tarCommand tạo lưu trữ:
$ tar -cvf lmdb.tar lmdb
Tuy nhiên, tôi muốn khai thác thêm thời gian chạy, tôi sẽ gài thêm date, trước và sau khi chạy tar.
$ date +'%d/%m/%Y %H:%M:%S'; tar -cvf lmdb.tar lmdb;date +'%d/%m/%Y %H:%M:%S'
09/01/2026 17:27:56
lmdb/
lmdb/data.mdb
lmdb/lock.mdb
09/01/2026 19:45:32
Khoảng 2 giờ 18 phút.
monero-blockchain-exportCommand monero-blockchain-export sử dụng như sau:
./monero-blockchain-export --data-dir=/mnt/disk_2/CryptoCurrency/Monero --output-file /mnt/disk_2/CryptoCurrency/Monero/monero-blockchain.dump
Bọc thêm thời gian:
$ date +'%d/%m/%Y %H:%M:%S'; \
./monero-blockchain-export --data-dir=/mnt/disk_2/CryptoCurrency/Monero --output-file /mnt/disk_2/CryptoCurrency/Monero/monero-blockchain.dump
date +'%d/%m/%Y %H:%M:%S'
09/01/2026 21:01:26
... ... ... ... ...
11/1/2025 23:56:26 Hơn 2 ngày rồi vẫn chưa xong. Tôi sẽ hủy bỏ việc sử dụng monero-blockchain-export, cái này hoàn toàn không đáp ứng nhu cầu của tôi.
tar là nhanh nhất, đẹp, gọn gàng, đặc biệt là khi sử dụng ổ HDD như tôi.