{"id":130489,"date":"2026-10-07T17:19:13","date_gmt":"2026-10-07T10:19:13","guid":{"rendered":"https:\/\/tino.vn\/blog\/?p=130489"},"modified":"2026-10-07T17:57:48","modified_gmt":"2026-10-07T10:57:48","slug":"bao-mat-vps-chay-ai-agent-bang-tailscale","status":"publish","type":"post","link":"https:\/\/tino.vn\/blog\/bao-mat-vps-chay-ai-agent-bang-tailscale\/","title":{"rendered":"H\u01b0\u1edbng d\u1eabn b\u1ea3o m\u1eadt VPS ch\u1ea1y AI Agent b\u1eb1ng Tailscale"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>B\u1ea3o m\u1eadt VPS ch\u1ea1y <a href=\"https:\/\/tino.vn\/blog\/ai-agent-la-gi\/\" target=\"_blank\" data-type=\"post\" data-id=\"125704\" rel=\"noreferrer noopener\">AI Agent <\/a>b\u1eb1ng Tailscale l\u00e0 c\u00e1ch \u0111\u01b0a SSH, Dashboard v\u00e0 c\u00e1c c\u1ed5ng qu\u1ea3n tr\u1ecb c\u1ee7a AI Agent v\u00e0o m\u1ed9t m\u1ea1ng ri\u00eang, thay v\u00ec m\u1edf tr\u1ef1c ti\u1ebfp ra Internet. C\u00e1ch tri\u1ec3n khai hi\u1ec7u qu\u1ea3 nh\u1ea5t l\u00e0 c\u00e0i Tailscale tr\u00ean VPS v\u00e0 m\u00e1y t\u00ednh qu\u1ea3n tr\u1ecb, ki\u1ec3m tra k\u1ebft n\u1ed1i qua m\u1ea1ng ri\u00eang, sau \u0111\u00f3 d\u00f9ng UFW \u0111\u00f3ng c\u00e1c c\u1ed5ng public kh\u00f4ng c\u1ea7n thi\u1ebft. C\u00f9ng Tino t\u00ecm hi\u1ec3u qua b\u00e0i vi\u1ebft d\u01b0\u1edbi \u0111\u00e2y nh\u00e9!<\/strong><\/p>\n\n\n\n<h2 id=\"T\u1ea1i_sao_VPS_ch\u1ea1y_AI_Agent_d\u1ec5_b\u1ecb_t\u1ea5n_c\u00f4ng?\"><strong>T\u1ea1i sao VPS ch\u1ea1y AI Agent d\u1ec5 b\u1ecb t\u1ea5n c\u00f4ng?<\/strong><\/h2>\n\n\n\n<h3 id=\"Nh\u1eefng_r\u1ee7i_ro_th\u1ef1c_t\u1ebf\"><strong>Nh\u1eefng r\u1ee7i ro th\u1ef1c t\u1ebf<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">M\u1ed9t AI Agent c\u00f3 th\u1ec3 \u0111\u1ecdc email, ch\u1ea1y l\u1ec7nh, truy c\u1eadp t\u1ec7p, g\u1ecdi API tr\u1ea3 ph\u00ed v\u00e0 thao t\u00e1c thay b\u1ea1n. N\u1ebfu k\u1ebb x\u1ea5u chi\u1ebfm \u0111\u01b0\u1ee3c quy\u1ec1n \u0111i\u1ec1u khi\u1ec3n, h\u1eadu qu\u1ea3 kh\u00f4ng d\u1eebng \u1edf vi\u1ec7c h\u1ecfng m\u1ed9t trang web m\u00e0 c\u00f2n g\u1ed3m:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>L\u1ed9 kh\u00f3a API<\/strong>: kh\u00f3a c\u1ee7a OpenAI, Anthropic hay Google b\u1ecb l\u1ea5y c\u1eafp v\u00e0 b\u1ecb d\u00f9ng \u0111\u1ebfn c\u1ea1n ti\u1ec1n.<\/li>\n\n\n\n<li><strong>M\u1ea5t d\u1eef li\u1ec7u<\/strong>: t\u00e0i li\u1ec7u, email, c\u01a1 s\u1edf d\u1eef li\u1ec7u m\u00e0 Agent \u0111\u01b0\u1ee3c c\u1ea5p quy\u1ec1n \u0111\u1ecdc b\u1ecb sao ch\u00e9p.<\/li>\n\n\n\n<li><strong>B\u1ecb l\u1ee3i d\u1ee5ng l\u00e0m b\u00e0n \u0111\u1ea1p<\/strong>: VPS b\u1ecb bi\u1ebfn th\u00e0nh m\u00e1y \u0111\u00e0o ti\u1ec1n \u1ea3o ho\u1eb7c n\u01a1i ph\u00e1t t\u00e1n th\u01b0 r\u00e1c.<\/li>\n\n\n\n<li><strong>B\u1ecb \u0111i\u1ec1u khi\u1ec3n t\u1eeb xa<\/strong>: giao di\u1ec7n web c\u1ee7a Agent \u0111\u1ec3 m\u1edf c\u00f4ng khai v\u00e0 kh\u00f4ng c\u00f3 m\u1eadt kh\u1ea9u m\u1ea1nh th\u00ec ai c\u0169ng ra l\u1ec7nh \u0111\u01b0\u1ee3c.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">M\u1ed9t VPS m\u1edbi t\u1ea1o th\u01b0\u1eddng b\u1ecb c\u00e1c c\u00f4ng c\u1ee5 t\u1ef1 \u0111\u1ed9ng d\u00f2 qu\u00e9t ch\u1ec9 sau v\u00e0i ph\u00fat. C\u1ed5ng SSH (22) v\u00e0 c\u00e1c c\u1ed5ng giao di\u1ec7n nh\u01b0 3000, 5678, 8080 l\u00e0 m\u1ee5c ti\u00eau quen thu\u1ed9c.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/bao-mat-vps-chay-ai-agent-bang-tailscale-1.png\" alt=\"T\u1ea1i sao VPS ch\u1ea1y AI Agent d\u1ec5 b\u1ecb t\u1ea5n c\u00f4ng?\" class=\"wp-image-130507\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/bao-mat-vps-chay-ai-agent-bang-tailscale-1.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/bao-mat-vps-chay-ai-agent-bang-tailscale-1-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption class=\"wp-element-caption\"><strong>T\u1ea1i sao VPS ch\u1ea1y AI Agent d\u1ec5 b\u1ecb t\u1ea5n c\u00f4ng?<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<h3 id=\"V\u00ec_sao_t\u01b0\u1eddng_l\u1eeda_th\u00f4ng_th\u01b0\u1eddng_ch\u01b0a_\u0111\u1ee7?\"><strong>V\u00ec sao t\u01b0\u1eddng l\u1eeda th\u00f4ng th\u01b0\u1eddng ch\u01b0a \u0111\u1ee7?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">T\u01b0\u1eddng l\u1eeda ch\u1eb7n c\u1ed5ng kh\u00f4ng d\u00f9ng l\u00e0 b\u01b0\u1edbc t\u1ed1t, nh\u01b0ng b\u1ea1n v\u1eabn ph\u1ea3i m\u1edf \u00edt nh\u1ea5t m\u1ed9t c\u1ed5ng \u0111\u1ec3 t\u1ef1 \u0111\u0103ng nh\u1eadp qu\u1ea3n tr\u1ecb. C\u1ed5ng \u0111\u00f3 ch\u00ednh l\u00e0 c\u1eeda s\u1ed5 cho k\u1ebb t\u1ea5n c\u00f4ng th\u1eed v\u1eadn may. C\u00e1ch ti\u1ebfp c\u1eadn t\u1ed1t h\u01a1n l\u00e0 <strong>kh\u00f4ng m\u1edf c\u1ed5ng n\u00e0o ra Internet<\/strong>, v\u00e0 \u0111\u1ec3 thi\u1ebft b\u1ecb c\u1ee7a b\u1ea1n v\u00e0o VPS qua m\u1ed9t \u0111\u01b0\u1eddng h\u1ea7m ri\u00eang. \u0110\u00f3 l\u00e0 vi\u1ec7c Tailscale l\u00e0m r\u1ea5t t\u1ed1t.<\/p>\n\n\n\n<h2 id=\"V\u1eady_Tailscale_l\u00e0_g\u00ec?_Gi\u00fap_b\u1ea3o_m\u1eadt_VPS_ch\u1ea1y_AI_Agent_nh\u01b0_th\u1ebf_n\u00e0o?\"><strong>V\u1eady Tailscale l\u00e0 g\u00ec? Gi\u00fap b\u1ea3o m\u1eadt VPS ch\u1ea1y AI Agent nh\u01b0 th\u1ebf n\u00e0o?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tailscale l\u00e0 n\u1ec1n t\u1ea3ng k\u1ebft n\u1ed1i m\u1ea1ng ri\u00eang d\u1ef1a tr\u00ean danh t\u00ednh, cho ph\u00e9p c\u00e1c m\u00e1y t\u00ednh, VPS, \u0111i\u1ec7n tho\u1ea1i v\u00e0 d\u1ecbch v\u1ee5 giao ti\u1ebfp v\u1edbi nhau th\u00f4ng qua m\u1ed9t m\u1ea1ng ri\u00eang g\u1ecdi l\u00e0 <strong>tailnet<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Thay v\u00ec ph\u1ea3i m\u1edf SSH ho\u1eb7c Dashboard qu\u1ea3n tr\u1ecb ra Internet, b\u1ea1n c\u00f3 th\u1ec3 \u0111\u01b0a c\u00e1c d\u1ecbch v\u1ee5 n\u00e0y v\u00e0o tailnet v\u00e0 ch\u1ec9 cho thi\u1ebft b\u1ecb \u0111\u00e3 \u0111\u0103ng nh\u1eadp Tailscale truy c\u1eadp.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tailscale x\u00e2y d\u1ef1ng k\u1ebft n\u1ed1i d\u1ef1a tr\u00ean WireGuard. D\u1eef li\u1ec7u gi\u1eefa c\u00e1c thi\u1ebft b\u1ecb \u0111\u01b0\u1ee3c m\u00e3 h\u00f3a \u0111\u1ea7u cu\u1ed1i k\u1ec3 c\u1ea3 khi k\u1ebft n\u1ed1i ph\u1ea3i chuy\u1ec3n ti\u1ebfp qua h\u1ec7 th\u1ed1ng relay c\u1ee7a Tailscale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00ed d\u1ee5, VPS AI Agent c\u00f3:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Public IP: 103.xxx.xxx.xxx<\/li>\n\n\n\n<li>Tailscale IP: 100.xxx.xxx.xxx<\/li>\n\n\n\n<li>SSH: port 22<\/li>\n\n\n\n<li>Dashboard AI Agent: port 3000<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Thay v\u00ec truy c\u1eadp: <strong>http:\/\/103.xxx.xxx.xxx:3000<\/strong> b\u1ea1n c\u00f3 th\u1ec3 ch\u1eb7n port 3000 tr\u00ean public Internet v\u00e0 ch\u1ec9 truy c\u1eadp qua m\u1ea1ng Tailscale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u00e2y ch\u00ednh l\u00e0 \u0111i\u1ec3m quan tr\u1ecdng nh\u1ea5t khi <strong>b\u1ea3o m\u1eadt VPS ch\u1ea1y AI Agent b\u1eb1ng Tailscale<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/bao-mat-vps-chay-ai-agent-bang-tailscale-1-1.png\" alt=\"Tailscale l\u00e0 g\u00ec?\" class=\"wp-image-130509\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/bao-mat-vps-chay-ai-agent-bang-tailscale-1-1.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/bao-mat-vps-chay-ai-agent-bang-tailscale-1-1-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption class=\"wp-element-caption\"><strong>Tailscale l\u00e0 g\u00ec<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<h2 id=\"M\u00f4_h\u00ecnh_b\u1ea3o_m\u1eadt_VPS_AI_Agent_v\u1edbi_Tailscale\"><strong>M\u00f4 h\u00ecnh b\u1ea3o m\u1eadt VPS AI Agent v\u1edbi Tailscale<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">M\u1ed9t c\u1ea5u h\u00ecnh ph\u00f9 h\u1ee3p cho ph\u1ea7n l\u1edbn VPS AI Agent l\u00e0:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Th\u00e0nh ph\u1ea7n<\/th><th>Ph\u01b0\u01a1ng th\u1ee9c truy c\u1eadp<\/th><\/tr><tr><td>SSH<\/td><td>Ch\u1ec9 qua Tailscale<\/td><\/tr><tr><td>Dashboard AI Agent<\/td><td>Ch\u1ec9 qua Tailscale<\/td><\/tr><tr><td>Database<\/td><td>Ch\u1ec9 localhost ho\u1eb7c Tailscale<\/td><\/tr><tr><td>Redis<\/td><td>Ch\u1ec9 localhost ho\u1eb7c Tailscale<\/td><\/tr><tr><td>API qu\u1ea3n tr\u1ecb<\/td><td>Ch\u1ec9 Tailscale<\/td><\/tr><tr><td>OpenAI\/OpenRouter\/Claude API<\/td><td>Cho ph\u00e9p k\u1ebft n\u1ed1i outbound<\/td><\/tr><tr><td>Telegram\/Discord\/Slack<\/td><td>Cho ph\u00e9p k\u1ebft n\u1ed1i outbound<\/td><\/tr><tr><td>Website public<\/td><td>Gi\u1eef 80\/443 n\u1ebfu c\u1ea7n<\/td><\/tr><tr><td>Webhook public<\/td><td>Ch\u1ec9 public endpoint th\u1ef1c s\u1ef1 c\u1ea7n thi\u1ebft<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110i\u1ec3m quan tr\u1ecdng l\u00e0 <strong>kh\u00f4ng ph\u1ea3i \u0111\u00f3ng to\u00e0n b\u1ed9 Internet c\u1ee7a VPS<\/strong>. AI Agent v\u1eabn c\u1ea7n truy c\u1eadp Internet \u0111\u1ec3 g\u1ecdi model, t\u00ecm ki\u1ebfm d\u1eef li\u1ec7u, t\u1ea3i website ho\u1eb7c giao ti\u1ebfp v\u1edbi API b\u00ean ngo\u00e0i. Ph\u1ea7n c\u1ea7n h\u1ea1n ch\u1ebf ch\u1ee7 y\u1ebfu l\u00e0 <strong>k\u1ebft n\u1ed1i \u0111i v\u00e0o VPS<\/strong>.<\/p>\n\n\n\n<h2 id=\"Chu\u1ea9n_b\u1ecb_tr\u01b0\u1edbc_khi_b\u1ea3o_m\u1eadt_VPS_ch\u1ea1y_AI_Agent_b\u1eb1ng_Tailscale\"><strong>Chu\u1ea9n b\u1ecb tr\u01b0\u1edbc khi b\u1ea3o m\u1eadt VPS ch\u1ea1y AI Agent b\u1eb1ng Tailscale<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">B\u1ea1n c\u1ea7n c\u00f3:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>M\u1ed9t VPS ch\u1ea1y Ubuntu ho\u1eb7c Debian (c\u00e1c l\u1ec7nh trong b\u00e0i d\u00f9ng Ubuntu 22.04\/24.04).<\/li>\n\n\n\n<li>Quy\u1ec1n \u0111\u0103ng nh\u1eadp hi\u1ec7n t\u1ea1i v\u00e0o VPS (SSH ho\u1eb7c b\u1ea3ng \u0111i\u1ec1u khi\u1ec3n c\u1ee7a nh\u00e0 cung c\u1ea5p).<\/li>\n\n\n\n<li>M\u1ed9t t\u00e0i kho\u1ea3n Google, Microsoft ho\u1eb7c GitHub \u0111\u1ec3 \u0111\u0103ng k\u00fd Tailscale.<\/li>\n\n\n\n<li>M\u00e1y c\u00e1 nh\u00e2n (Windows, macOS, Linux) ho\u1eb7c \u0111i\u1ec7n tho\u1ea1i \u0111\u1ec3 c\u00e0i \u1ee9ng d\u1ee5ng Tailscale.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>M\u1eb9o an to\u00e0n:<\/strong> h\u00e3y m\u1edf s\u1eb5n b\u1ea3ng \u0111i\u1ec1u khi\u1ec3n console c\u1ee7a nh\u00e0 cung c\u1ea5p VPS trong m\u1ed9t tab kh\u00e1c. N\u1ebfu l\u1ee1 kh\u00f3a nh\u1ea7m, b\u1ea1n v\u1eabn c\u00f3 \u0111\u01b0\u1eddng v\u00e0o \u0111\u1ec3 s\u1eeda.<\/p>\n\n\n\n<h2 id=\"H\u01b0\u1edbng_d\u1eabn_b\u1ea3o_m\u1eadt_VPS_ch\u1ea1y_AI_Agent_b\u1eb1ng_Tailscale&nbsp;\"><strong>H\u01b0\u1edbng d\u1eabn b\u1ea3o m\u1eadt VPS ch\u1ea1y AI Agent b\u1eb1ng Tailscale<\/strong>&nbsp;<\/h2>\n\n\n\n<h3 id=\"B\u01b0\u1edbc_1:_C\u00e0i_Tailscale_tr\u00ean_m\u00e1y_t\u00ednh_qu\u1ea3n_tr\u1ecb\"><strong>B\u01b0\u1edbc 1: C\u00e0i Tailscale tr\u00ean m\u00e1y t\u00ednh qu\u1ea3n tr\u1ecb<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tr\u01b0\u1edbc ti\u00ean, c\u00e0i <a href=\"https:\/\/tailscale.com\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/tailscale.com\/\" rel=\"noreferrer noopener nofollow\">Tailscale<\/a> tr\u00ean m\u00e1y t\u00ednh b\u1ea1n s\u1eed d\u1ee5ng \u0111\u1ec3 qu\u1ea3n tr\u1ecb VPS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tailscale h\u1ed7 tr\u1ee3 Windows, macOS, Linux, Android v\u00e0 iOS.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"478\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_2-1-1024x478.png\" alt=\"C\u00e0i Tailscale tr\u00ean m\u00e1y t\u00ednh qu\u1ea3n tr\u1ecb\" class=\"wp-image-130494\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_2-1-1024x478.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_2-1-300x140.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_2-1-768x359.png 768w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_2-1-1536x718.png 1536w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_2-1.png 1781w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>C\u00e0i Tailscale tr\u00ean m\u00e1y t\u00ednh qu\u1ea3n tr\u1ecb<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Sau khi c\u00e0i \u0111\u1eb7t:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>M\u1edf Tailscale.<\/li>\n\n\n\n<li>\u0110\u0103ng nh\u1eadp b\u1eb1ng t\u00e0i kho\u1ea3n Google, Microsoft, GitHub ho\u1eb7c nh\u00e0 cung c\u1ea5p danh t\u00ednh \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3.<\/li>\n\n\n\n<li>Gi\u1eef Tailscale ho\u1ea1t \u0111\u1ed9ng tr\u00ean m\u00e1y t\u00ednh.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"979\" height=\"733\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_3.png\" alt=\"C\u00e0i Tailscale tr\u00ean m\u00e1y t\u00ednh qu\u1ea3n tr\u1ecb\" class=\"wp-image-130495\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_3.png 979w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_3-300x225.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_3-768x575.png 768w\" sizes=\"(max-width: 979px) 100vw, 979px\" \/><figcaption class=\"wp-element-caption\"><strong>C\u00e0i Tailscale tr\u00ean m\u00e1y t\u00ednh qu\u1ea3n tr\u1ecb<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Tailscale d\u1ef1a v\u00e0o nh\u00e0 cung c\u1ea5p danh t\u00ednh \u0111\u1ec3 x\u00e1c th\u1ef1c ng\u01b0\u1eddi d\u00f9ng v\u00e0 h\u1ed7 tr\u1ee3 c\u00e1c ch\u00ednh s\u00e1ch nh\u01b0 MFA t\u1eeb nh\u00e0 cung c\u1ea5p \u0111\u00f3.<\/p>\n\n\n\n<h3 id=\"B\u01b0\u1edbc_2:_C\u00e0i_Tailscale_tr\u00ean_VPS\"><strong>B\u01b0\u1edbc 2: C\u00e0i Tailscale tr\u00ean VPS<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tr\u00ean VPS, SSH v\u00e0o m\u00e1y ch\u1ee7 nh\u01b0 b\u00ecnh th\u01b0\u1eddng r\u1ed3i ch\u1ea1y:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -fsSL https:\/\/tailscale.com\/install.sh | sh\n\nsudo tailscale up --ssh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">L\u1ec7nh th\u1ee9 hai s\u1ebd hi\u1ec3n th\u1ecb m\u1ed9t \u0111\u01b0\u1eddng d\u1eabn x\u00e1c th\u1ef1c. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"590\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_4-1-1024x590.png\" alt=\"C\u00e0i Tailscale tr\u00ean VPS\" class=\"wp-image-130496\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_4-1-1024x590.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_4-1-300x173.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_4-1-768x443.png 768w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_4-1.png 1331w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>C\u00e0i Tailscale tr\u00ean VPS<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">M\u1edf \u0111\u01b0\u1eddng d\u1eabn tr\u00ean tr\u00ecnh duy\u1ec7t, \u0111\u0103ng nh\u1eadp t\u00e0i kho\u1ea3n Tailscale \u0111ang s\u1eed d\u1ee5ng tr\u00ean m\u00e1y c\u00e1 nh\u00e2n v\u00e0 x\u00e1c nh\u1eadn th\u00eam VPS v\u00e0o tailnet.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"571\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_5-1-1024x571.png\" alt=\"C\u00e0i Tailscale tr\u00ean VPS\" class=\"wp-image-130498\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_5-1-1024x571.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_5-1-300x167.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_5-1-768x429.png 768w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_5-1.png 1147w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>C\u00e0i Tailscale tr\u00ean VPS<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<h3 id=\"B\u01b0\u1edbc_3:_Ki\u1ec3m_tra_k\u1ebft_n\u1ed1i_tr\u01b0\u1edbc_khi_\u0111\u00f3ng_SSH_public\"><strong>B\u01b0\u1edbc 3: Ki\u1ec3m tra k\u1ebft n\u1ed1i tr\u01b0\u1edbc khi \u0111\u00f3ng SSH public<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tr\u00ean VPS, ch\u1ea1y:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tailscale ip -4<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">B\u1ea1n s\u1ebd nh\u1eadn \u0111\u01b0\u1ee3c \u0111\u1ecba ch\u1ec9 d\u1ea1ng:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>100.x.x.x<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"648\" height=\"217\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_6-1.png\" alt=\"Ki\u1ec3m tra k\u1ebft n\u1ed1i tr\u01b0\u1edbc khi \u0111\u00f3ng SSH public\" class=\"wp-image-130497\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_6-1.png 648w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_6-1-300x100.png 300w\" sizes=\"(max-width: 648px) 100vw, 648px\" \/><figcaption class=\"wp-element-caption\"><strong>Ki\u1ec3m tra k\u1ebft n\u1ed1i tr\u01b0\u1edbc khi \u0111\u00f3ng SSH public<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Tr\u00ean m\u00e1y c\u00e1 nh\u00e2n \u0111\u00e3 b\u1eadt Tailscale, m\u1edf Terminal ho\u1eb7c PowerShell v\u00e0 th\u1eed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh tenuser@100.x.x.x<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">N\u1ebfu \u0111\u0103ng nh\u1eadp th\u00e0nh c\u00f4ng, k\u1ebft n\u1ed1i qua Tailscale \u0111\u00e3 ho\u1ea1t \u0111\u1ed9ng.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"530\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_7-1024x530.png\" alt=\"Ki\u1ec3m tra k\u1ebft n\u1ed1i tr\u01b0\u1edbc khi \u0111\u00f3ng SSH public\" class=\"wp-image-130499\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_7-1024x530.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_7-300x155.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_7-768x398.png 768w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_7.png 1209w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Ki\u1ec3m tra k\u1ebft n\u1ed1i tr\u01b0\u1edbc khi \u0111\u00f3ng SSH public<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Quan tr\u1ecdng:<\/strong> Ch\u1ec9 chuy\u1ec3n sang b\u01b0\u1edbc ti\u1ebfp theo sau khi \u0111\u00e3 SSH th\u00e0nh c\u00f4ng qua Tailscale. N\u00ean gi\u1eef phi\u00ean SSH hi\u1ec7n t\u1ea1i \u0111ang m\u1edf \u0111\u1ec3 c\u00f3 \u0111\u01b0\u1eddng kh\u00f4i ph\u1ee5c n\u1ebfu c\u1ea5u h\u00ecnh firewall sai.<\/p>\n\n\n\n<h3 id=\"B\u01b0\u1edbc_4:_\u0110\u00f3ng_c\u00e1c_c\u1ed5ng_qu\u1ea3n_tr\u1ecb_c\u00f4ng_khai_b\u1eb1ng_UFW\"><strong>B\u01b0\u1edbc 4: \u0110\u00f3ng c\u00e1c c\u1ed5ng qu\u1ea3n tr\u1ecb c\u00f4ng khai b\u1eb1ng UFW<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sau khi ch\u1eafc ch\u1eafn c\u00f3 th\u1ec3 SSH qua Tailscale, c\u1ea5u h\u00ecnh UFW. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00e0i UFW:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update\n\napt install ufw -y<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sau \u0111\u00f3 ch\u1ea1y c\u00e1c l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw default deny incoming\n\nsudo ufw default allow outgoing\n\nsudo ufw allow in on tailscale0\n\nsudo ufw enable<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"848\" height=\"315\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_8.png\" alt=\" \u0110\u00f3ng c\u00e1c c\u1ed5ng qu\u1ea3n tr\u1ecb c\u00f4ng khai b\u1eb1ng UFW\" class=\"wp-image-130500\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_8.png 848w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_8-300x111.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_8-768x285.png 768w\" sizes=\"(max-width: 848px) 100vw, 848px\" \/><figcaption class=\"wp-element-caption\"><strong> \u0110\u00f3ng c\u00e1c c\u1ed5ng qu\u1ea3n tr\u1ecb c\u00f4ng khai b\u1eb1ng UFW<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Ki\u1ec3m tra:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw status<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">N\u1ebfu tr\u01b0\u1edbc \u0111\u00e2y \u0111\u00e3 m\u1edf port SSH 22:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw status numbered<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"664\" height=\"334\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_9-1.png\" alt=\" \u0110\u00f3ng c\u00e1c c\u1ed5ng qu\u1ea3n tr\u1ecb c\u00f4ng khai b\u1eb1ng UFW\" class=\"wp-image-130501\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_9-1.png 664w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_9-1-300x151.png 300w\" sizes=\"(max-width: 664px) 100vw, 664px\" \/><figcaption class=\"wp-element-caption\"><strong> \u0110\u00f3ng c\u00e1c c\u1ed5ng qu\u1ea3n tr\u1ecb c\u00f4ng khai b\u1eb1ng UFW<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Sau \u0111\u00f3 x\u00f3a rule t\u01b0\u01a1ng \u1ee9ng:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw delete &lt;s\u1ed1-rule&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00ed d\u1ee5:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw delete 1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">N\u1ebfu nh\u00e0 cung c\u1ea5p VPS c\u00f3 <strong>Cloud Firewall, Security Group ho\u1eb7c Network Firewall<\/strong>, h\u00e3y ki\u1ec3m tra v\u00e0 \u0111\u00f3ng <strong>port 22 public<\/strong> t\u1ea1i \u0111\u00e2y sau khi SSH qua Tailscale \u0111\u00e3 ho\u1ea1t \u0111\u1ed9ng \u1ed5n \u0111\u1ecbnh.<\/p>\n\n\n\n<h4 id=\"L\u01b0u_\u00fd_n\u1ebfu_AI_Agent_ch\u1ea1y_b\u1eb1ng_Docker\"><strong>L\u01b0u \u00fd n\u1ebfu AI Agent ch\u1ea1y b\u1eb1ng Docker<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Docker c\u00f3 th\u1ec3 t\u1ea1o firewall rule ri\u00eang khi publish port. V\u00ec v\u1eady, c\u1ea5u h\u00ecnh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-p 3000:3000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">c\u00f3 th\u1ec3 khi\u1ebfn Dashboard \u0111\u01b0\u1ee3c truy c\u1eadp t\u1eeb Internet ngay c\u1ea3 khi UFW \u0111ang ch\u1eb7n port t\u01b0\u01a1ng \u1ee9ng.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Thay v\u00e0o \u0111\u00f3, h\u00e3y bind Dashboard v\u00e0o localhost:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-p 127.0.0.1:3000:3000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00ed d\u1ee5 v\u1edbi Docker Compose:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ports:\n\n&nbsp;&nbsp;- \"127.0.0.1:3000:3000\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nh\u01b0 v\u1eady, Dashboard ch\u1ec9 \u0111\u01b0\u1ee3c truy c\u1eadp tr\u1ef1c ti\u1ebfp t\u1eeb VPS. \u1ede b\u01b0\u1edbc ti\u1ebfp theo, Tailscale Serve s\u1ebd t\u1ea1o \u0111\u01b0\u1eddng truy c\u1eadp ri\u00eang an to\u00e0n h\u01a1n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u1ebfu VPS c\u00f2n ch\u1ea1y website, webhook ho\u1eb7c API b\u1eaft bu\u1ed9c ph\u1ea3i public, \u0111\u1eebng ch\u1eb7n c\u00e1c c\u1ed5ng c\u1ea7n thi\u1ebft nh\u01b0 80\/443. Ch\u1ec9 kh\u00f3a nh\u1eefng c\u1ed5ng qu\u1ea3n tr\u1ecb kh\u00f4ng c\u1ea7n Internet truy c\u1eadp tr\u1ef1c ti\u1ebfp.<\/p>\n\n\n\n<h3 id=\"B\u01b0\u1edbc_5:_S\u1eed_d\u1ee5ng_Tailscale_SSH\"><strong>B\u01b0\u1edbc 5: S\u1eed d\u1ee5ng Tailscale SSH<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Do \u0111\u00e3 ch\u1ea1y:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo tailscale up --ssh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u1edf <strong>B\u01b0\u1edbc 2<\/strong>, VPS \u0111\u00e3 b\u1eadt Tailscale SSH.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">B\u1ea1n c\u00f3 th\u1ec3 SSH qua Tailscale IP:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh tenuser@100.x.x.x<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ho\u1eb7c MagicDNS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh tenuser@ten-vps<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tailscale SSH x\u1eed l\u00fd vi\u1ec7c x\u00e1c th\u1ef1c cho c\u00e1c k\u1ebft n\u1ed1i SSH \u0111i qua m\u1ea1ng Tailscale, nh\u1edd \u0111\u00f3 gi\u1ea3m nhu c\u1ea7u t\u1ef1 ph\u00e2n ph\u1ed1i SSH key gi\u1eefa nhi\u1ec1u thi\u1ebft b\u1ecb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u1ebfu VPS v\u1eabn c\u00f2n d\u1ecbch v\u1ee5 OpenSSH truy\u1ec1n th\u1ed1ng, b\u1ea1n c\u0169ng n\u00ean t\u1eaft \u0111\u0103ng nh\u1eadp b\u1eb1ng m\u1eadt kh\u1ea9u.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">M\u1edf:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/ssh\/sshd_config<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">T\u00ecm ho\u1eb7c th\u00eam:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PasswordAuthentication no<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sau \u0111\u00f3 l\u01b0u file r\u1ed3i ch\u1ea1y l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart ssh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ch\u1ec9 th\u1ef1c hi\u1ec7n thay \u0111\u1ed5i n\u00e0y sau khi \u0111\u00e3 ki\u1ec3m tra Tailscale SSH ho\u1ea1t \u0111\u1ed9ng b\u00ecnh th\u01b0\u1eddng.<\/p>\n\n\n\n<h3 id=\"B\u01b0\u1edbc_6:_\u0110\u01b0a_Dashboard_AI_Agent_v\u00e0o_m\u1ea1ng_ri\u00eang_b\u1eb1ng_Tailscale_Serve\"><strong>B\u01b0\u1edbc 6: \u0110\u01b0a Dashboard AI Agent v\u00e0o m\u1ea1ng ri\u00eang b\u1eb1ng Tailscale Serve<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Gi\u1ea3 s\u1eed Dashboard AI Agent \u0111ang ch\u1ea1y n\u1ed9i b\u1ed9 t\u1ea1i: <strong>127.0.0.1:3000<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ch\u1ea1y:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo tailscale serve --bg localhost:3000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tailscale s\u1ebd cung c\u1ea5p \u0111\u1ecba ch\u1ec9 HTTPS d\u1ea1ng: <strong>https:\/\/ten-vps.ten-tailnet.ts.net<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"781\" height=\"326\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_11-1.png\" alt=\"\u0110\u01b0a Dashboard AI Agent v\u00e0o m\u1ea1ng ri\u00eang b\u1eb1ng Tailscale Serve\" class=\"wp-image-130503\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_11-1.png 781w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_11-1-300x125.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_11-1-768x321.png 768w\" sizes=\"(max-width: 781px) 100vw, 781px\" \/><figcaption class=\"wp-element-caption\"><strong>\u0110\u01b0a Dashboard AI Agent v\u00e0o m\u1ea1ng ri\u00eang b\u1eb1ng Tailscale Serve<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">M\u1edf \u0111\u1ecba ch\u1ec9 n\u00e0y tr\u00ean m\u00e1y \u0111\u00e3 tham gia tailnet \u0111\u1ec3 truy c\u1eadp Dashboard.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u1ebfu HTTPS ch\u01b0a \u0111\u01b0\u1ee3c b\u1eadt cho tailnet, Tailscale c\u00f3 th\u1ec3 hi\u1ec3n th\u1ecb \u0111\u01b0\u1eddng d\u1eabn \u0111\u1ec3 b\u1ea1n x\u00e1c nh\u1eadn k\u00edch ho\u1ea1t.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_10-1-1024x610.png\" alt=\"\u0110\u01b0a Dashboard AI Agent v\u00e0o m\u1ea1ng ri\u00eang b\u1eb1ng Tailscale Serve\" class=\"wp-image-130504\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_10-1-1024x610.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_10-1-300x179.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_10-1-768x458.png 768w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_10-1.png 1248w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>\u0110\u01b0a Dashboard AI Agent v\u00e0o m\u1ea1ng ri\u00eang b\u1eb1ng Tailscale Serve<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Lu\u1ed3ng truy c\u1eadp l\u00fac n\u00e0y s\u1ebd l\u00e0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>M\u00e1y c\u00e1 nh\u00e2n\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2193\n\n&nbsp;&nbsp;&nbsp;Tailscale\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2193\n\nHTTPS Serve\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2193\n\n127.0.0.1:3000\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2193\n\nAI Agent<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dashboard kh\u00f4ng c\u1ea7n m\u1edf port 3000 tr\u1ef1c ti\u1ebfp ra Internet.<\/p>\n\n\n\n<h4 id=\"Serve_kh\u00e1c_Funnel_th\u1ebf_n\u00e0o?\"><strong>Serve kh\u00e1c Funnel th\u1ebf n\u00e0o?<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tailscale Serve:<\/strong> ch\u1ec9 thi\u1ebft b\u1ecb \u0111\u01b0\u1ee3c c\u1ea5p quy\u1ec1n trong tailnet truy c\u1eadp.<\/li>\n\n\n\n<li><strong>Tailscale Funnel:<\/strong> \u0111\u01b0a d\u1ecbch v\u1ee5 ra Internet c\u00f4ng khai.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">V\u1edbi Dashboard qu\u1ea3n tr\u1ecb AI Agent, n\u00ean s\u1eed d\u1ee5ng <strong>Serve<\/strong>. <strong>Funnel <\/strong>ch\u1ec9 ph\u00f9 h\u1ee3p khi b\u1ea1n ch\u1ee7 \u0111\u1ed9ng c\u1ea7n public m\u1ed9t d\u1ecbch v\u1ee5, ch\u1eb3ng h\u1ea1n webhook nh\u1eadn request t\u1eeb n\u1ec1n t\u1ea3ng b\u00ean ngo\u00e0i.<\/p>\n\n\n\n<h3 id=\"B\u01b0\u1edbc_7:_Gi\u1edbi_h\u1ea1n_quy\u1ec1n_truy_c\u1eadp_b\u1eb1ng_Grants\"><strong>B\u01b0\u1edbc 7: Gi\u1edbi h\u1ea1n quy\u1ec1n truy c\u1eadp b\u1eb1ng Grants<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">M\u1eb7c \u0111\u1ecbnh, tailnet m\u1edbi c\u00f3 ch\u00ednh s\u00e1ch cho ph\u00e9p c\u00e1c thi\u1ebft b\u1ecb k\u1ebft n\u1ed1i v\u1edbi nhau. V\u00ec v\u1eady, n\u1ebfu tailnet c\u00f3 nhi\u1ec1u laptop, server ho\u1eb7c th\u00e0nh vi\u00ean kh\u00e1c, b\u1ea1n n\u00ean thi\u1ebft l\u1eadp Access Controls \u0111\u1ec3 \u00e1p d\u1ee5ng nguy\u00ean t\u1eafc <strong>quy\u1ec1n t\u1ed1i thi\u1ec3u<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tailscale hi\u1ec7n khuy\u1ebfn ngh\u1ecb s\u1eed d\u1ee5ng <strong>Grants<\/strong> cho c\u00e1c c\u1ea5u h\u00ecnh m\u1edbi. V\u00ed d\u1ee5 b\u1ea1n c\u00f3 t\u00e0i kho\u1ea3n <strong>admin@example.com<\/strong> v\u00e0 mu\u1ed1n d\u00e0nh VPS cho AI Agent. Tr\u01b0\u1edbc ti\u00ean, v\u00e0o <strong>Tailscale Admin Console \u2192 Access controls<\/strong> -&gt;<strong> JSON Editor<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"604\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_12-2-1024x604.png\" alt=\"Gi\u1edbi h\u1ea1n quy\u1ec1n truy c\u1eadp b\u1eb1ng Grants\" class=\"wp-image-130506\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_12-2-1024x604.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_12-2-300x177.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_12-2-768x453.png 768w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/Screenshot_12-2.png 1341w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Gi\u1edbi h\u1ea1n quy\u1ec1n truy c\u1eadp b\u1eb1ng Grants<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"> Nh\u1eadp l\u1ec7nh c\u1ea5u h\u00ecnh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n\n&nbsp;&nbsp;\"tagOwners\": {\n\n&nbsp;&nbsp;&nbsp;&nbsp;\"tag:ai-agent\": &#091;\"admin@example.com\"]\n\n&nbsp;&nbsp;},\n\n&nbsp;&nbsp;\"grants\": &#091;\n\n&nbsp;&nbsp;&nbsp;&nbsp;{\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"src\": &#091;\"admin@example.com\"],\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"dst\": &#091;\"tag:ai-agent\"],\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"ip\": &#091;\"tcp:22\", \"tcp:443\"]\n\n&nbsp;&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;],\n\n&nbsp;&nbsp;\"ssh\": &#091;\n\n&nbsp;&nbsp;&nbsp;&nbsp;{\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"action\": \"check\",\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"src\": &#091;\"admin@example.com\"],\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"dst\": &#091;\"tag:ai-agent\"],\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"users\": &#091;\"tenuser\"]\n\n&nbsp;&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;]\n\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>L\u01b0u \u00fd:<\/strong> Thay<strong> admin@example.com <\/strong>b\u1eb1ng t\u00e0i kho\u1ea3n Tailscale c\u1ee7a b\u1ea1n v\u00e0 <strong>tenuser<\/strong> b\u1eb1ng t\u00e0i kho\u1ea3n Linux tr\u00ean VPS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u1ea5u h\u00ecnh tr\u00ean c\u00f3 \u00fd ngh\u0129a:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ch\u1ec9 t\u00e0i kho\u1ea3n qu\u1ea3n tr\u1ecb \u0111\u00e3 ch\u1ec9 \u0111\u1ecbnh \u0111\u01b0\u1ee3c truy c\u1eadp VPS.<\/li>\n\n\n\n<li>Ch\u1ec9 cho ph\u00e9p TCP 22 v\u00e0 TCP 443.<\/li>\n\n\n\n<li>Tailscale SSH y\u00eau c\u1ea7u b\u01b0\u1edbc x\u00e1c nh\u1eadn b\u1eb1ng ch\u1ebf \u0111\u1ed9 check.<\/li>\n\n\n\n<li>Ch\u1ec9 cho \u0111\u0103ng nh\u1eadp b\u1eb1ng t\u00e0i kho\u1ea3n Linux \u0111\u01b0\u1ee3c ch\u1ec9 \u0111\u1ecbnh.<\/li>\n\n\n\n<li>VPS \u0111\u01b0\u1ee3c nh\u1eadn d\u1ea1ng b\u1eb1ng tag:ai-agent.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Sau \u0111\u00f3 g\u1eafn tag cho VPS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo tailscale set --advertise-tags=tag:ai-agent<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ki\u1ec3m tra:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tailscale status<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">M\u1ed9t l\u1ee3i \u00edch kh\u00e1c c\u1ee7a tag l\u00e0 <strong>key expiry \u0111\u01b0\u1ee3c t\u1eaft m\u1eb7c \u0111\u1ecbnh cho thi\u1ebft b\u1ecb g\u1eafn tag<\/strong>, ph\u00f9 h\u1ee3p v\u1edbi VPS v\u00e0 server c\u1ea7n ch\u1ea1y AI Agent li\u00ean t\u1ee5c.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tuy nhi\u00ean, sau khi g\u1eafn tag, VPS s\u1eed d\u1ee5ng danh t\u00ednh c\u1ee7a tag thay cho danh t\u00ednh ng\u01b0\u1eddi d\u00f9ng. V\u00ec v\u1eady, h\u00e3y thi\u1ebft l\u1eadp Grants v\u00e0 SSH policy tr\u01b0\u1edbc ho\u1eb7c \u0111\u1ed3ng th\u1eddi v\u1edbi qu\u00e1 tr\u00ecnh g\u1eafn tag \u0111\u1ec3 tr\u00e1nh m\u1ea5t quy\u1ec1n truy c\u1eadp.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>L\u01b0u \u00fd: giao di\u1ec7n v\u00e0 t\u00ednh n\u0103ng c\u1ee7a Tailscale c\u00f3 th\u1ec3 thay \u0111\u1ed5i theo th\u1eddi gian. H\u00e3y \u0111\u1ed1i chi\u1ebfu v\u1edbi t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c t\u1ea1i tailscale.com\/kb tr\u01b0\u1edbc khi \u00e1p d\u1ee5ng cho h\u1ec7 th\u1ed1ng quan tr\u1ecdng.<\/em><\/p>\n<\/blockquote>\n\n\n\n<h2 id=\"Nh\u1eefng_l\u1ed7i_th\u01b0\u1eddng_g\u1eb7p_khi_b\u1ea3o_m\u1eadt_VPS_ch\u1ea1y_AI_Agent_b\u1eb1ng_Tailscale\"><strong>Nh\u1eefng l\u1ed7i th\u01b0\u1eddng g\u1eb7p khi b\u1ea3o m\u1eadt VPS ch\u1ea1y AI Agent b\u1eb1ng Tailscale<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0110\u00f3ng c\u1ed5ng 22 tr\u01b0\u1edbc khi ki\u1ec3m tra Tailscale<\/strong>: D\u1eabn \u0111\u1ebfn t\u1ef1 kh\u00f3a m\u00ecnh ngo\u00e0i m\u00e1y ch\u1ee7. Lu\u00f4n l\u00e0m B\u01b0\u1edbc 3 tr\u01b0\u1edbc B\u01b0\u1edbc 4.<\/li>\n\n\n\n<li><strong>Qu\u00ean Docker b\u1ecf qua t\u01b0\u1eddng l\u1eeda<\/strong>: C\u1ed5ng v\u1eabn m\u1edf d\u00f9 UFW b\u00e1o \u0111\u00e3 ch\u1eb7n. H\u00e3y g\u1eafn c\u1ed5ng v\u00e0o 127.0.0.1.<\/li>\n\n\n\n<li><strong>\u0110\u1ec3 ch\u00ednh s\u00e1ch m\u1eb7c \u0111\u1ecbnh &#8220;cho ph\u00e9p t\u1ea5t c\u1ea3&#8221;<\/strong>: Ai v\u00e0o \u0111\u01b0\u1ee3c m\u1ea1ng l\u00e0 v\u00e0o \u0111\u01b0\u1ee3c m\u1ecdi m\u00e1y. H\u00e3y vi\u1ebft grants c\u1ee5 th\u1ec3.<\/li>\n\n\n\n<li><strong>D\u00f9ng Funnel cho giao di\u1ec7n Agent<\/strong>: Vi\u1ec7c n\u00e0y \u0111\u01b0a Agent ra c\u00f4ng khai, \u0111i ng\u01b0\u1ee3c m\u1ee5c ti\u00eau b\u1ea3o m\u1eadt.<\/li>\n\n\n\n<li><strong>C\u1ea5p kh\u00f3a API qu\u00e1 r\u1ed9ng<\/strong>: Ngay c\u1ea3 khi VPS an to\u00e0n, h\u00e3y gi\u1edbi h\u1ea1n h\u1ea1n m\u1ee9c chi ti\u00eau v\u00e0 quy\u1ec1n c\u1ee7a kh\u00f3a API. Agent ch\u1ec9 c\u1ea7n quy\u1ec1n \u0111\u1ee7 d\u00f9ng.<\/li>\n\n\n\n<li><strong>Kh\u00f4ng c\u1eadp nh\u1eadt h\u1ec7 th\u1ed1ng<\/strong>: Ch\u1ea1y sudo apt update &amp;&amp; sudo apt upgrade \u0111\u1ecbnh k\u1ef3 v\u00e0 c\u1eadp nh\u1eadt Tailscale \u0111\u1ec3 nh\u1eadn b\u1ea3n v\u00e1 m\u1edbi.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/bao-mat-vps-chay-ai-agent-bang-tailscale-3.png\" alt=\"Nh\u1eefng l\u1ed7i th\u01b0\u1eddng g\u1eb7p khi b\u1ea3o m\u1eadt VPS ch\u1ea1y AI Agent b\u1eb1ng Tailscale\" class=\"wp-image-130510\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/bao-mat-vps-chay-ai-agent-bang-tailscale-3.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/bao-mat-vps-chay-ai-agent-bang-tailscale-3-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption class=\"wp-element-caption\"><strong>Nh\u1eefng l\u1ed7i th\u01b0\u1eddng g\u1eb7p khi b\u1ea3o m\u1eadt VPS ch\u1ea1y AI Agent b\u1eb1ng Tailscale<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<h2 id=\"Danh_s\u00e1ch_ki\u1ec3m_tra_b\u1ea3o_m\u1eadt_nhanh\"><strong>Danh s\u00e1ch ki\u1ec3m tra b\u1ea3o m\u1eadt nhanh<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tailscale \u0111\u00e3 c\u00e0i v\u00e0 \u0111\u0103ng nh\u1eadp tr\u00ean VPS l\u1eabn m\u00e1y c\u00e1 nh\u00e2n<\/li>\n\n\n\n<li>SSH v\u00e0o VPS qua \u0111\u1ecba ch\u1ec9 Tailscale th\u00e0nh c\u00f4ng<\/li>\n\n\n\n<li>UFW ch\u1eb7n m\u1ecdi k\u1ebft n\u1ed1i \u0111\u1ebfn, ch\u1ec9 cho ph\u00e9p giao di\u1ec7n tailscale0<\/li>\n\n\n\n<li>\u0110\u00e3 \u0111\u00f3ng c\u1ed5ng 22 v\u00e0 c\u00e1c c\u1ed5ng giao di\u1ec7n \u1edf t\u01b0\u1eddng l\u1eeda nh\u00e0 cung c\u1ea5p<\/li>\n\n\n\n<li>Container Docker g\u1eafn c\u1ed5ng v\u00e0o 127.0.0.1<\/li>\n\n\n\n<li>Giao di\u1ec7n Agent truy c\u1eadp qua Tailscale Serve (HTTPS)<\/li>\n\n\n\n<li>\u0110\u00e3 vi\u1ebft grants thay cho ch\u00ednh s\u00e1ch m\u1eb7c \u0111\u1ecbnh cho ph\u00e9p t\u1ea5t c\u1ea3<\/li>\n\n\n\n<li>Kh\u00f3a API c\u00f3 h\u1ea1n m\u1ee9c chi ti\u00eau v\u00e0 quy\u1ec1n t\u1ed1i thi\u1ec3u<\/li>\n\n\n\n<li>H\u1ec7 th\u1ed1ng v\u00e0 Tailscale \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt \u0111\u1ecbnh k\u1ef3<\/li>\n<\/ul>\n\n\n\n<h2 id=\"K\u1ebft_lu\u1eadn\"><strong>K\u1ebft lu\u1eadn<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">B\u1ea3o m\u1eadt VPS ch\u1ea1y AI Agent b\u1eb1ng Tailscale kh\u00f4ng y\u00eau c\u1ea7u thay \u0111\u1ed5i to\u00e0n b\u1ed9 ki\u1ebfn tr\u00fac m\u00e1y ch\u1ee7. B\u1ea1n ch\u1ec9 c\u1ea7n \u0111\u01b0a c\u00e1c d\u1ecbch v\u1ee5 qu\u1ea3n tr\u1ecb nh\u01b0 SSH, Dashboard v\u00e0 database v\u00e0o m\u1ea1ng ri\u00eang, ki\u1ec3m tra k\u1ebft n\u1ed1i qua Tailscale r\u1ed3i d\u00f9ng firewall \u0111\u00f3ng nh\u1eefng port public kh\u00f4ng c\u1ea7n thi\u1ebft.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">H\u00e3y b\u1eaft \u0111\u1ea7u ngay h\u00f4m nay v\u1edbi VPS \u0111ang ch\u1ea1y Agent c\u1ee7a b\u1ea1n, v\u00e0 d\u00f9ng danh s\u00e1ch ki\u1ec3m tra ph\u00eda tr\u00ean \u0111\u1ec3 r\u00e0 so\u00e1t t\u1eebng m\u1ee5c. M\u1ed9t thi\u1ebft l\u1eadp b\u1ea3o m\u1eadt g\u1ecdn g\u00e0ng s\u1ebd gi\u00fap b\u1ea1n y\u00ean t\u00e2m giao vi\u1ec7c cho AI Agent m\u00e0 kh\u00f4ng ph\u1ea3i lo ng\u1ea1i v\u1ec1 nh\u1eefng v\u1ecb kh\u00e1ch kh\u00f4ng m\u1eddi.<\/p>\n\n\n\n<h2 id=\"Nh\u1eefng_c\u00e2u_h\u1ecfi_th\u01b0\u1eddng_g\u1eb7p\"><strong>Nh\u1eefng c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p<\/strong><\/h2>\n\n\n\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"Tailscale_c\u00f3_thay_th\u1ebf_firewall_tr\u00ean_VPS_kh\u00f4ng?\">Tailscale c\u00f3 thay th\u1ebf firewall tr\u00ean VPS kh\u00f4ng?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">Kh\u00f4ng. Tailscale t\u1ea1o m\u1ea1ng ri\u00eang v\u00e0 ki\u1ec3m so\u00e1t quy\u1ec1n truy c\u1eadp gi\u1eefa c\u00e1c thi\u1ebft b\u1ecb, nh\u01b0ng VPS v\u1eabn c\u00f3 th\u1ec3 nh\u1eadn traffic t\u1eeb Internet qua public IP n\u1ebfu firewall cho ph\u00e9p. V\u00ec v\u1eady, n\u00ean s\u1eed d\u1ee5ng Tailscale k\u1ebft h\u1ee3p UFW ho\u1eb7c firewall c\u1ee7a nh\u00e0 cung c\u1ea5p VPS.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"D\u00f9ng_Tailscale_c\u00f3_c\u1ea7n_m\u1edf_port_22_ra_Internet_kh\u00f4ng?\">D\u00f9ng Tailscale c\u00f3 c\u1ea7n m\u1edf port 22 ra Internet kh\u00f4ng?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">Kh\u00f4ng. Sau khi x\u00e1c nh\u1eadn SSH qua Tailscale ho\u1ea1t \u0111\u1ed9ng, b\u1ea1n c\u00f3 th\u1ec3 \u0111\u00f3ng port 22 public v\u00e0 ch\u1ec9 SSH th\u00f4ng qua \u0111\u1ecba ch\u1ec9 Tailscale.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"Tailscale_c\u00f3_ph\u00f9_h\u1ee3p_cho_VPS_ch\u1ea1y_AI_Agent_24\/7_kh\u00f4ng?\">Tailscale c\u00f3 ph\u00f9 h\u1ee3p cho VPS ch\u1ea1y AI Agent 24\/7 kh\u00f4ng?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">C\u00f3. Server c\u00f3 th\u1ec3 duy tr\u00ec trong tailnet v\u00e0 ti\u1ebfp t\u1ee5c ch\u1ea1y AI Agent 24\/7. V\u1edbi VPS quan tr\u1ecdng, h\u00e3y ch\u00fa \u00fd ch\u00ednh s\u00e1ch key expiry, ph\u01b0\u01a1ng th\u1ee9c kh\u00f4i ph\u1ee5c truy c\u1eadp v\u00e0 quy\u1ec1n c\u1ee7a t\u1eebng thi\u1ebft b\u1ecb. Tailscale cho ph\u00e9p \u0111i\u1ec1u ch\u1ec9nh key expiry; v\u1edbi server \u0111\u00e1ng tin c\u1eady, qu\u1ea3n tr\u1ecb vi\u00ean c\u0169ng c\u00f3 th\u1ec3 c\u1ea5u h\u00ecnh ph\u00f9 h\u1ee3p v\u1edbi nhu c\u1ea7u v\u1eadn h\u00e0nh.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"T\u00f4i_c\u00f3_th\u1ec3_truy_c\u1eadp_AI_Agent_t\u1eeb_\u0111i\u1ec7n_tho\u1ea1i_kh\u00f4ng?\">T\u00f4i c\u00f3 th\u1ec3 truy c\u1eadp AI Agent t\u1eeb \u0111i\u1ec7n tho\u1ea1i kh\u00f4ng?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">\u0110\u01b0\u1ee3c. C\u00e0i \u1ee9ng d\u1ee5ng Tailscale tr\u00ean iOS ho\u1eb7c Android, \u0111\u0103ng nh\u1eadp c\u00f9ng t\u00e0i kho\u1ea3n, r\u1ed3i m\u1edf \u0111\u1ecba ch\u1ec9 HTTPS do Tailscale Serve cung c\u1ea5p. B\u1ea1n kh\u00f4ng c\u1ea7n m\u1edf c\u1ed5ng c\u00f4ng khai.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"N\u1ebfu_Tailscale_g\u1eb7p_s\u1ef1_c\u1ed1,_t\u00f4i_c\u00f3_b\u1ecb_m\u1ea5t_quy\u1ec1n_v\u00e0o_VPS_kh\u00f4ng?\">N\u1ebfu Tailscale g\u1eb7p s\u1ef1 c\u1ed1, t\u00f4i c\u00f3 b\u1ecb m\u1ea5t quy\u1ec1n v\u00e0o VPS kh\u00f4ng?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">K\u1ebft n\u1ed1i gi\u1eefa c\u00e1c thi\u1ebft b\u1ecb th\u01b0\u1eddng \u0111i tr\u1ef1c ti\u1ebfp, nh\u01b0ng vi\u1ec7c \u0111\u0103ng nh\u1eadp v\u00e0 c\u1ea5p quy\u1ec1n v\u1eabn ph\u1ee5 thu\u1ed9c d\u1ecbch v\u1ee5 \u0111i\u1ec1u ph\u1ed1i c\u1ee7a Tailscale. V\u00ec v\u1eady, h\u00e3y lu\u00f4n gi\u1eef s\u1eb5n \u0111\u01b0\u1eddng d\u1ef1 ph\u00f2ng l\u00e0 b\u1ea3ng \u0111i\u1ec1u khi\u1ec3n console c\u1ee7a nh\u00e0 cung c\u1ea5p VPS \u0111\u1ec3 x\u1eed l\u00fd khi c\u1ea7n.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\n<script type=\"application\/ld+json\">\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"FAQPage\",\n\t\t\"mainEntity\": [\n\t\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"Tailscale c\u00f3 thay th\u1ebf firewall tr\u00ean VPS kh\u00f4ng?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Kh\u00f4ng. Tailscale t\u1ea1o m\u1ea1ng ri\u00eang v\u00e0 ki\u1ec3m so\u00e1t quy\u1ec1n truy c\u1eadp gi\u1eefa c\u00e1c thi\u1ebft b\u1ecb, nh\u01b0ng VPS v\u1eabn c\u00f3 th\u1ec3 nh\u1eadn traffic t\u1eeb Internet qua public IP n\u1ebfu firewall cho ph\u00e9p. V\u00ec v\u1eady, n\u00ean s\u1eed d\u1ee5ng Tailscale k\u1ebft h\u1ee3p UFW ho\u1eb7c firewall c\u1ee7a nh\u00e0 cung c\u1ea5p VPS.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"D\u00f9ng Tailscale c\u00f3 c\u1ea7n m\u1edf port 22 ra Internet kh\u00f4ng?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Kh\u00f4ng. Sau khi x\u00e1c nh\u1eadn SSH qua Tailscale ho\u1ea1t \u0111\u1ed9ng, b\u1ea1n c\u00f3 th\u1ec3 \u0111\u00f3ng port 22 public v\u00e0 ch\u1ec9 SSH th\u00f4ng qua \u0111\u1ecba ch\u1ec9 Tailscale.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"Tailscale c\u00f3 ph\u00f9 h\u1ee3p cho VPS ch\u1ea1y AI Agent 24\/7 kh\u00f4ng?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>C\u00f3. Server c\u00f3 th\u1ec3 duy tr\u00ec trong tailnet v\u00e0 ti\u1ebfp t\u1ee5c ch\u1ea1y AI Agent 24\/7. V\u1edbi VPS quan tr\u1ecdng, h\u00e3y ch\u00fa \u00fd ch\u00ednh s\u00e1ch key expiry, ph\u01b0\u01a1ng th\u1ee9c kh\u00f4i ph\u1ee5c truy c\u1eadp v\u00e0 quy\u1ec1n c\u1ee7a t\u1eebng thi\u1ebft b\u1ecb. Tailscale cho ph\u00e9p \u0111i\u1ec1u ch\u1ec9nh key expiry; v\u1edbi server \u0111\u00e1ng tin c\u1eady, qu\u1ea3n tr\u1ecb vi\u00ean c\u0169ng c\u00f3 th\u1ec3 c\u1ea5u h\u00ecnh ph\u00f9 h\u1ee3p v\u1edbi nhu c\u1ea7u v\u1eadn h\u00e0nh.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"T\u00f4i c\u00f3 th\u1ec3 truy c\u1eadp AI Agent t\u1eeb \u0111i\u1ec7n tho\u1ea1i kh\u00f4ng?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>\u0110\u01b0\u1ee3c. C\u00e0i \u1ee9ng d\u1ee5ng Tailscale tr\u00ean iOS ho\u1eb7c Android, \u0111\u0103ng nh\u1eadp c\u00f9ng t\u00e0i kho\u1ea3n, r\u1ed3i m\u1edf \u0111\u1ecba ch\u1ec9 HTTPS do Tailscale Serve cung c\u1ea5p. B\u1ea1n kh\u00f4ng c\u1ea7n m\u1edf c\u1ed5ng c\u00f4ng khai.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"N\u1ebfu Tailscale g\u1eb7p s\u1ef1 c\u1ed1, t\u00f4i c\u00f3 b\u1ecb m\u1ea5t quy\u1ec1n v\u00e0o VPS kh\u00f4ng?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>K\u1ebft n\u1ed1i gi\u1eefa c\u00e1c thi\u1ebft b\u1ecb th\u01b0\u1eddng \u0111i tr\u1ef1c ti\u1ebfp, nh\u01b0ng vi\u1ec7c \u0111\u0103ng nh\u1eadp v\u00e0 c\u1ea5p quy\u1ec1n v\u1eabn ph\u1ee5 thu\u1ed9c d\u1ecbch v\u1ee5 \u0111i\u1ec1u ph\u1ed1i c\u1ee7a Tailscale. V\u00ec v\u1eady, h\u00e3y lu\u00f4n gi\u1eef s\u1eb5n \u0111\u01b0\u1eddng d\u1ef1 ph\u00f2ng l\u00e0 b\u1ea3ng \u0111i\u1ec1u khi\u1ec3n console c\u1ee7a nh\u00e0 cung c\u1ea5p VPS \u0111\u1ec3 x\u1eed l\u00fd khi c\u1ea7n.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t]\n\t}\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>B\u1ea3o m\u1eadt VPS ch\u1ea1y AI Agent b\u1eb1ng Tailscale l\u00e0 c\u00e1ch \u0111\u01b0a SSH, Dashboard v\u00e0 c\u00e1c c\u1ed5ng qu\u1ea3n tr\u1ecb c\u1ee7a AI Agent v\u00e0o m\u1ed9t m\u1ea1ng ri\u00eang, thay v\u00ec m\u1edf tr\u1ef1c ti\u1ebfp ra Internet. C\u00e1ch tri\u1ec3n khai hi\u1ec7u qu\u1ea3 nh\u1ea5t l\u00e0 c\u00e0i Tailscale tr\u00ean VPS v\u00e0 m\u00e1y t\u00ednh qu\u1ea3n tr\u1ecb, ki\u1ec3m tra k\u1ebft n\u1ed1i qua m\u1ea1ng ri\u00eang, [&hellip;]<\/p>\n","protected":false},"author":23,"featured_media":130512,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7396],"tags":[7716],"class_list":["post-130489","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-automation","tag-tailscale"],"_links":{"self":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/130489","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/comments?post=130489"}],"version-history":[{"count":6,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/130489\/revisions"}],"predecessor-version":[{"id":130513,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/130489\/revisions\/130513"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media\/130512"}],"wp:attachment":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media?parent=130489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/categories?post=130489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/tags?post=130489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}