Cảm nhận về Shadowsocks kết hợp với BBR

Shadowsocks là gì?

Ứng dụng proxy dựa trên mã nguồn mở SOCKS5, Shadowsocks là ứng dụng trung gian được thiết kế chủ yếu để vượt qua sự kiểm duyệt. Nó được phát hành lần đầu tiên vào năm 2012 bởi một lập trình viên người Trung Quốc với bút danh “clowwindy”.

Vào năm 2015, lập trình viên này thông báo rằng họ từ bỏ dự án do bị cảnh sát điều tra. Kể từ đó, Shadowsocks đã được phát triển và duy trì bởi nhiều cộng tác viên.

Shadowsocks khác với VPN như thế nào?

Có một điểm tương đồng chính giữa VPN và Shadowsocks, đó là khả năng kết nối bạn với các trang web thường bị giới hạn do kiểm duyệt của chính phủ, địa giới, hoặc bằng các cách khác.

Với mục đích ban đầu là vượt qua Great Firewall của Trung Quốc, Shadowsocks tập trung vào việc phá vỡ các hạn chế về lưu lượng truy cập. Shadowsocks sử dụng HTTP để ẩn lưu lượng truy cập và có thể vượt qua các biện pháp kiểm duyệt tại chỗ.

Không giống như VPN, Shadowsocks không được thiết kế để bảo mật và ẩn danh. Trong khi VPN mã hóa tất cả lưu lượng truy cập khi được kích hoạt, các gói dữ liệu trong Shadowsocks đều “trống” – có nghĩa là chúng không được mã hóa. Mục đích chính của việc này là làm cho dữ liệu của bạn trông giống như lưu lượng truy cập HTTP, để nó có thể được lan truyền mà không có bất kỳ hạn chế nào.

Do sử dụng proxy SOCKS5, Shadowsocks không gửi tất cả lưu lượng truy cập của bạn qua máy chủ, điều này hoàn toàn ngược lại so với VPN. Và trái ngược với các proxy ssh SOCKS5 truyền thống, Shadowsocks hoạt động với nhiều kết nối TCP. Do đó, tốc độ truy cập mạng sẽ nhanh hơn nhiều so với các lựa chọn khác.

Ưu điểm của Shadowsocks

Ưu điểm lớn nhất của Shadowsocks là việc dễ dàng được thiết lập. Công nghệ này là một proxy đơn giản và hữu ích mà không mất nhiều thời gian để thiết lập và là sự lựa chọn hoàn hảo cho việc truy cập vào các nội dung bị giới hạn.

Một lợi ích khác của Shadowsocks là việc ẩn lưu lượng truy cập có lựa chọn của nó. Bạn có thể chọn phần lưu lượng truy cập của bạn bị ảnh hưởng bởi Shadowsocks – điều này giúp bạn có thể truy cập các nội dung bị hạn chế cả bên trong và bên ngoài vị trí của mình.

Ví dụ: bạn đang ở Trung Quốc và bạn muốn truy cập vào GmailBằng cách sử dụng Shadowsocks, bạn có thể chọn lưu lượng truy cập Gmail là “camouflaged”,để bỏ qua việc chặn của chính phủ Trung Quốc.

Tuy nhiên, bạn vẫn có thể truy cập các trang web chỉ có ở Trung Quốc. Ngược lại, VPN sẽ mã hóa tất cả lưu lượng truy cập đến máy chủ bạn đã chọn, do đó các trang web độc quyền của Trung Quốc không thể được truy cập trên cùng một thiết bị.

Điều cuối cùng nhưng không kém phần quan trọng, Shadowsocks rất khó – nếu không phải là không thể – để phát hiện và chặn. Việc ẩn lưu lượng truy cập để làm cho nó xuất hiện như HTTP là lý do chính cho điều đó.

Mặt khác, phương thức hoạt động và sự phổ biến của VPN đã giúp các chính phủ và các nền tảng dễ dàng ngăn chặn công nghệ hoặc buộc các công ty lớn loại bỏ VPN khỏi các cửa hàng của họ (ví dụ như gỡ bỏ ứng dụng VPN của Apple khỏi App Store của Trung Quốc).

Thật sự nếu bạn là người bình thường, sống ở Việt Nam thì chỉ hay nghe nhiều về proxy, socks, vpn, chứ có lẽ ít nghe về Shadowsocks, vâng và mình cũng thế :]] Mình không biết cái quái gì gọi là Shadowsocks cho tới khi google thông tin về cách biến con VPS thành proxy, khi tìm hiểu thêm thì mình thấy khá là hay ho, đơn giản là khi dùng nó, mình có thể chạy max speed đường truyền nhà mạng thông qua con VPS :]]

TCP BBR là gì

Các kĩ sư tại Google vừa giới thiệu thuật toán mới giúp tăng tốc TCP, đây là một giao thức truyền dữ liệu chủ yếu cho traffic Internet. Nó hoạt động dựa vào phương thức tối ưu hóa tốc độ gửi traffic, và từ đó giúp không gây nghẽn đường truyền.

Phương pháp này được gọi là khoảng thời gian truyền băng thông và đường đi nút thắt cổ chai (Bottleneck Bandwidth & Roundtrip – BBR). Nó giúp tìm ra cách nhanh nhất để gửi dữ liệu qua các đường truyền khác nhau, ngoài ra còn hỗ trợ xử lý traffic hiệu quả hơn khi dữ liệu bị nghẽn.

Google cũng sẵn sàng sử dụng BBR để tăng tốc traffic YouTube và cuối tháng, công ty cũng sẽ đưa BBR lên Google Cloud Platform. Google nói rằng áp dụng BBR sẽ tăng tốc traffic hiện đã được tối ưu hóa cao của YouTube thêm trung bình 4% và nhiếu nhất là 14% ở một số nước.

Nói chung là định nghĩa chung là thế, chứ thực tế mình cũng chẳng hiểu BBR nó hoạt động ra làm sao :]] chỉ biết Google làm ra và mình chạy thấy có hiệu quả thì mình cài vào thôi 😀 thực tế khi mình thử trên VPS Vultr chạy các hệ điều hành mới như Ubuntu 17.10 x64 đã thấy họ có cài sẵn BBR vào rồi 😀

OK, đầu tiên bạn hãy nhìn vào các bài Speedtest, ở mỗi bài test trước đó sẽ trình duyệt sẽ xóa cookies, tắt trình duyệt, bật lại 😀

Đầu tiên là test với đường truyền tại nhà, để chạy trực tiếp

FPT Telecom Ho Chi Minh City (http://www.speedtest.net/result/7209293041)
Speedtest.net Amsterdam (http://www.speedtest.net/result/7209293041)
Speedtest.net Dallas, TX (http://www.speedtest.net/result/7209299729)
Speedtest.net Tokyo (http://www.speedtest.net/result/7209303935)

Tiếp theo là thử khi sử dụng Vultr location Japan làm proxy, sử dụng Shadowsocks kết hợp với thuật toán điều khiển tắc nghẽn TCP, BBR từ Google

FPT Telecom Ho Chi Minh City (http://www.speedtest.net/result/7209310236)
Speedtest.net Amsterdam (http://www.speedtest.net/result/7209315911)
Speedtest.net Dallas, TX (http://www.speedtest.net/result/7209319807)
Speedtest.net Tokyo (http://www.speedtest.net/result/7209322867)

Kết quả là giờ ta có một cái đường truyền gần như max tốc độ nhà mạng, download tại khắp mọi nơi trên thế giới đều kịch kim, bù lại ta có 1 cái speed upload thấp cmnl :]]

Sử dụng Shadowsocks chọ ta một kết nối nhanh hơn và ổn định hơn khá nhiều so với sử dụng VPN, tuy thế nên nhớ Shadowsocks sinh ra không phải để giúp bạn an toàn hơn khi online 😀 đơn giản nó sinh ra là vì Trung Quốc yêu cầu các nhà mạng chặn FB, Google các kiểu tởm wá, chúng nó phải viết ra Shadowsocks  nhằm mục đích vào được các trang đó mà thôi 😀

Thực tế mình test qua lại, không hiểu sao khi dùng VPS làm VPN tốc độ khá là thọt, chạy kiểu Shadowsocks thì khá hơn, dù tốc độ upload ở các bài test thấp tè, nhưng khi mình thử upload file lên Youtube vẫn thấy nó max speed, cũng không hiểu tại làm sao luôn

Sự thật thì mình cũng khá bất ngờ về tốc độ mà Shadowsocks và BBR mang lại, chưa khi nào mình thử VPN hay các proxy mà đạt được max speed khi kết nối tới các server ở Châu Âu cả 😀

Để dễ hình dung về Shadowsocks là bạn sẽ có cảm giác rõ ràng mình dùng proxy, nhưng tốc độ vẫn cứ max speed đường truyền nhà bạn 😛 Kết quả tạm thời là thế, mình sẽ bổ xung thêm các kết quả khác về speed, nếu cách này dùng ổn định 😀

Cài đặt

Nên dùng VPS location Singapore, Hong Kong hoặc Japan cho nhanh 😀

Chọn hệ điều hành thì tùy, sao cũng được, có điều ở bài này mình dùng Ubuntu 16.04, nếu dùng Vultr tạo xong có IP nên check thử xem hiện đúng location không, vì như con của mình location Japan, nhưng check toàn hiện là Hong Kong :]] nếu để sử dụng luôn thì nên cố để IP và location giống nhau, vì dùng Shadowsocks IP và location sai, Google dễ hiểu lầm, nó văng popup hỏi “Bạn có phải là người máy không” khá thường 😀

Bạn có thể check IP VPS qua Domaintools hoặc Whatismyipaddress

Ở bài này làm demo thì mình dùng VPS Vultr, location Japan, mình cũng thử chạy qua Amazon EC2 thì thấy cài đặt cũng bình thường, nhớ vào mở hết các port ra là được 

Cài đặt Shadowsocks  

Login vào root, đầu tiên chạy lệnh bên dưới để update hệ điều hành

Tiếp theo chạy:

Chú ý là dòng 1 khá dài, nhớ kéo màn hình copy cho hết link 😛
Mặc định nó sẽ hỏi bạn password sau khi gõ lệnh cuối ở trên

Password mặc định là “teddysun.com” hãy điền vào pass bạn thích, xong rồi ấn Enter 😀

Port được tạo ngẫu nhiên, như của mình là 11387, điền port khác nếu thích, không thì cứ ấn Enter 😛

Chọn option thứ 13 là chacha20-ietf-poly1305 😀 (Họ hỗ trợ 16 cơ chế mã hóa, nhìn vào thì thấy cái nào cũng như cái nào 😀 )

Enter xong thì ngồi chờ nó chạy 1 rừng code các kiểu

Xong xuôi nó sẽ hiện ra các thông số để bạn nhìn, copy thoái mái 😛 của mình thì như thế

Ok, tiếp theo download file setup để chạy trên máy tính

Shadowsocks for Windows Shadowsocks for Android Shadowsocks for Mac

Mình dùng bản Shadowsocks v4.0.9 cho Windows ở thời điểm viết bài này

Điền vào các thông số như ở trên, chạy thì phải chuột chọn Enable system proxyMode chọn Global, các thứ khác để mặc định, còn bạn nào thích tìm hiểu thêm các setting thì cứ tự nghịch

Mình dùng thì thấy mặc định trình duyệt từ nhận cả rồi, nếu cái nào không tự nhận thì bạn thêm vào phần proxy cho nó, localhost:1080 như setting trong Shadowsocks là được

Vậy là bạn đã có 1 con proxy chuẩn Shadowsocks để dùng rồi 😛

Họ hỗ trợ tới 16 phương thức mã hóa, mình cũng không rõ cái nào tốt, bạn nào muốn sửa thì mở file config ra sửa lại là được

Sửa xong restart lại để có hiệu quả

Thử xem loại nào ổn, mình thử chacha20-ietf-poly1305 là thấy ổn rồi

Trong trường hợp vì lý do nào đó, bạn không muốn dùng nữa, gỡ bỏ ra thì chạy lệnh:

Mỗi cái tốc độ chưa max,  được khoảng 80% tốc độ nhà mạng Việt Nam thôi, cần tối ưu thêm, về mặt lý thuyết các cụm location của Vultr có thể đạt tốc độ cao nhất lên tới ~50MB/s, là vào khoản 400 Mbps, tiếc là mình cũng chưa có cái mạng nào ở đây để thử xem tới được con số đó không

Cài đặt Google BBR và tối ưu hóa VPS

Bước này thì cứ copy, paste là được, chứ mình cũng ếu hiểu mấy cái dòng đó nghĩa là gì đâu :]]

Chạy xong 3 dòng code đó nó sẽ hỏi bạn có muốn reboot không, ấn “y” rồi Enter là được

Login vào lại VPS với quyền root, chạy 2 dòng lệnh bên dưới

Thêm vào sau dòng “net.ipv4.tcp_congestion_control = bbr” đoạn code bên dưới

Ctrl + O -> Enter -> Ctrl + X (để save lại file và thoát ra)

Chạy tiếp 2 dòng lệnh bên dưới

Kéo xuống cuối trang thêm vào đoạn code bên dưới

Ctrl + O -> Enter -> Ctrl + X (để save lại file và thoát ra)

Chạy tiếp dòng lệnh bên dưới:

Kéo xuống cuối trang thêm vào đoạn code bên dưới

Ctrl + O -> Enter -> Ctrl + X (để save lại file và thoát ra)

Chạy tiếp dòng lệnh bên dưới:

Kéo xuống cuối trang thêm vào đoạn code bên dưới

Ctrl + O -> Enter -> Ctrl + X (để save lại file và thoát ra)

Chạy tiếp dòng lệnh bên dưới:

Kiểm tra lại tốc độ từ Speedtest 😀

Ta có những con số download max đường truyền nhà mạng Việt Nam 😀

Mình đã thử lại trên 3-4 con VPS, từ Vultr, Amazon …. thì chạy bình thường cả, duy chỉ có UpCloud không rõ họ config sẵn thế nào nhưng thường vào được tí là bị đá ra, chủ yếu do con UpCloud đang dùng làm web chính rồi nên mình cũng không coi kĩ thêm, đa phần vẫn test bên Vultr, VPS họ khỏe, nhanh, ổn định và giá rẻ nữa

Tổng kết thì cũng phải dùng 1 thời gian xem  thế nào, chủ yếu vì không rõ mạng nhà FPT mấy hôm nay ra làm sao, bình thường thì chạy vù vù, mà lâu lâu lại đơ đơ, đi thông qua proxy thì lại bình thường, thế nên mới search ra mấy bài này đó chứ :]] Bài gốc ở link đó, phần nhiều mình chỉ là lược dịch 😀

9 thoughts on “Cảm nhận về Shadowsocks kết hợp với BBR

    • Google BBR thì tùy OS, một số OS bản mới họ đã tự có sẵn rồi (Ubuntu v18), nói chung nếu không cài làm socks thì cũng không cần cài vào làm gì, các dịch vụ hosting họ đã nhanh lắm rồi

      • BBR thì chạy script trên thì đã tự động update kernel mới nhất và setting cho server dùng giao thức BBR rồi . Còn mấy cái config của bác thì có hay ko thì vps vẫn cho kết nối ngon lành hơn rồi phải ko?

        • Đâu ra mà tự up update kernel mới nhất, mới nhất của bọn này cũng cũ mèm cả thôi 😀

          Mà trong bài viết đã viết rõ trước và sau khi cài Google BBR, speed cải thiện ra làm sao rồi mà, vẫn còn hỏi lại làm gì nữa

          Test thì tạo con VPS, chạy vào dòng lệnh là thấy thôi mà

          • Cái script bbr.sh nó update kernel của centos mình từ 3.10 lên 4.17.14 và setting cho vps mình tự khởi động với kernel 4.x và dùng bbr . Ngay cả note trong cái bash có ghi rõ dòng “Auto install latest kernel for TCP BBR” “System Required: CentOS 6+, Debian7+, Ubuntu12+”

          • Kernel stable mới nhất mà cũ mèm gì >.< . Vẫn không hiểu tại sao centos tới giờ vẫn dùng kernel 3.10

    • Không có hứng dùng qua các dịch vụ nào nữa lắm, phần vì Avira Phantom VPN quá đủ yêu cầu cho security và speed 😀

      Còn nói về speed thuần túy Shadowsocks tận dụng con VPS Japan đang để không, max speed đi 99% các nơi trên thế giới

      Tốn tiền và tốn thời gian tìm hiểu thêm làm gì, chủ yếu tận dụng đồ có sẵn :]]

Leave a Comment