Skip to main content

Tạo wifi hotspot với TP-Link WR1043ND, OpenWRT, Nodogsplash

Mình có mua một router wifi TP-Link TL-WR1043ND và cần phát wifi cho một số người dùng. Ngoài việc phát wifi ra mình còn muốn tạo một trang web mặc định mỗi khi người dùng truy cập vào (captive portal) để hiện một số nhắc nhở, thông báo, và kiểm soát lưu lượng theo từng máy để không có máy nào chiếm hết băng thông. Bằng cách sử dụng OpenWRTNodogsplash và wshaper, mình đã có thể làm được hết các yêu cầu trên.

Cài đặt OpenWRT cho router

Sau đó đăng nhập vào router, phần System Tools -> Firmware Upgrade, bấm Browse rồi chọn file vừa tải về. Sau đó bấm Upgrade. Sẽ mất một vài phút để router cập nhật firmware, sau đó nó sẽ tự khởi động lại.

Cập nhật firmware cho router TP-Link
Khi router khởi động lại xong, bạn sẽ cần đăng nhập vào router và setup một vài thứ như password root, giao diện web… Trước tiên telnet vào router:
Đặt mật khẩu cho root:
Sau khi đã đặt mật khẩu xong, bạn có thể làm việc qua SSH với router này. Bấm Ctrl + D để thoát ra và kết nối SSH bằng mật khẩu bạn vừa tạo:
Sau đó cài đặt giao diện web cho router (LuCI) để bạn có thể quản lý được nhiều thứ trực quan hơn:
Sau khi đã có giao diện web, chúng ta có thể thao tác với router thông qua địa chỉ:
http://192.168.1.1, với user là root và mật khẩu bạn đã đặt:
Đăng nhập giao diện LuCI
Đăng nhập giao diện LuCI
Mặc định sau khi cài đặt, OpenWRT sẽ phát một mạng wifi là OpenWRT không có password. Bạn có thể thay đổi cài đặt trong mục Network -> Wifi. Ở đây mình sẽ không đi chi tiết vào việc cài đặt này.

Cài đặt Nodogsplash

Nodogsplash là chương trình giúp tạo captive portal, là trang web mặc định bạn sẽ thấy sau khi đăng nhập vào một hotspot. Trên trang captive portal này cũng có thể yêu cầu bạn nhập thêm username hoặc password để sử dụng được Internet. Để cài đặt, từ cửa sổ kết nối SSH lúc nãy:
Cho phép nodogsplash chạy khi router khởi động:
Sau đó thay đổi một số thiết lập của Nodogsplash
Bạn có thể đọc kỹ hơn các ghi chú trong file config này để tùy chỉnh theo ý mình tốt hơn. Hoặc tham khảo file cấu hình của mình tại đây:https://gist.github.com/minhdanh/14c379a31b71c5a85c02. Có một số điểm cần chú ý:
Block FirewallRuleSet authenticated-users thiết lập các rule tường lửa cho những user đã authenticated (tức là nhập vào đúng username/password, hoặc nhấn vào một link trên trang captive portal). Trong config của mình, mình chỉ cho phép user sử dụng dịch vụ Web, DNS, SSH.
Block FirewallRuleSet preauthenticated-users cũng tương tự, nhưng áp dụng cho những user chưa authenticated (là chỉ mới đăng nhập vào mạng wifi, chưa “đụng chạm” gì tới trang captive portal). Trong file cấu hình ví dụ, mình cho phép dùng dịch vụ DNS, và cho phép truy cập đến cổng 80, 443 của chính router để người dùng có thể xem được trang splash.
Block FirewallRuleSet users-to-router cho phép user truy cập đến cổng nào của router.
GatewayName Wifi Login: Thiết lập tên cho gateway là Wifi Login. Bạn không dùng được tiếng Việt có dấu đâu nhé.
MaxClients 50: Số lượng user tối đa được kết nối vào router.
ClientIdleTimeout 300: Thời gian nếu user không hoạt động sẽ phải authenticate lại (300 giây).
ClientForceTimeout 3600: Sau một giờ (3600 giây) bắt buộc user phải authenticate lại.
PasswordAuthentication no: Bắt buộc user nhập password vào hay không. Nếu có thì bạn cần chỉnh lại mật khẩu ở parameter tiếp theo Password.
UsernameAuthentication yes: Yêu cầu nhập username hay không. Tương tự như trên.
GatewayPort 2050: Cổng mặc định mà nodogsplash chạy. Bạn có thể để mặc định.
Trang web mặc định của nodogplash đặt ở /etc/nodogsplash/htdocs/splash.html. Bạn có thể sửa đổi tùy theo ý thích, mà khả năng là bạn sẽ muốn sửa nó vì trang mặc định của nodogsplash rất xấu >_<. Mình đã sửa lại thành một trang bootstrap dễ coi hơn, bạn có thể tham khảo tại đây:https://github.com/minhdanh/nodogsplash-splash
Lưu ý: Nodogsplash sử dụng web server không hỗ trợ mime-type text/css, text/javascript nên bạn không bỏ file css, js trong thư mục /etc/nodogsplash/htdocs/ được. Do đó mình sử dụng thư mục web của LuCI (chạy trên cổng 80):
Sau khi thay đổi cài đặt theo ý muốn, bạn khởi động nodogsplash:
Để xem tình trạng của nodogsplash:

Kiểm soát băng thông

Nodogsplash có hỗ trợ việc giới hạn bandwidth, nhưng mình đã thử mà không thành công. Nên mình dùng một package riêng để kiểm soát việc này, đó là wshaper:
Sau đó chỉnh lại tốc độ bạn muốn giới hạn
Ở đây mình giới hạn tốc độ download là 800Kb/s, tốc độ upload là 128Kb/s.
Tự chạy wshaper khi khởi động:
Chạy wshaper:
Sau đó thử đăng nhập vào mạng wifi bạn vừa cấu hình, trang đăng nhập sẽ hiện ra, và đây là thành quả:
Trang splash mới của wifi hotspot
Trang splash mới của wifi hotspot
Để kiểm tra tốc độ download:
Xong rồi đó. :)

Popular posts from this blog

[Tìm Hiểu] Tại sao thiết kế web tại Nhật Bản lại khác thường

Trong con mắt nhiều người thì Nhật  Bản là vùng đất của những khu vườn yên bình, những cung điện tĩnh lặng và những buổi tiệc trà tinh tế. Cả văn hoá truyền thống và kiến trúc hiện đại, sách và tạp chí đều có những thành tự đáng ghen tị với giới thiết kế toàn cầu. Tuy nhiên vì lý do thực tế nào đó, sự chuyên nghiệp này lại không hề có mặt trên các sản phẩm kỹ thuật số, đặc biệt là các trang web, hầu hết chúng chẳng khác gì so với những năm 1998.     Hãy mở trình duyệt và thử một vài trang web nổi tiếng tại Nhật như:   Goo , Rakuten ,  Yomiuri ,  NicoNico ,  OKWave ,  @cosme ,.. Chữ hiển thị dày đặc trong các khối Hình ảnh nhỏ với chất lượng tối thiểu Bạn không thể đếm có bao nhiêu cột Màu tươi sáng, tương phản đi cùng các biểu ngữ nhấp náy Công nghệ lỗi thời – ví dụ như Flash. Những trang web tối giản hầu như không xuất hiện. Các trang như  wabi-sabi  rất hiếm. Nhiều giả thuyết được đưa ra và tôi cũng cố gắng giải thích dựa trên những gì phổ biến

Một con chip khuếch đại âm thanh tối giản LM3886

bởi Mick Feuerbacher, tháng Bảy năm 2006. Cập nhật  tháng 8 năm  2006,  tháng 8 năm  2006. Dự án này là một bộ khuếch đại công suất LM3886 dựa giản. Nó chỉ có số lượng tối thiểu của các bộ phận trong đường dẫn tín hiệu: Ba điện trở - không có gì khác. Ba điện trở là cần thiết cho các chức năng của amp đơn giản hóa như vậy hơn nữa trong ý nghĩa này là không thể. Đề cập đến các sơ đồ dưới đây, ba điện trở Rg, thiết lập trở kháng đầu vào của amp, và Rf và Ri, trong đó thiết lập được. Đặc biệt trong thiết kế này sử dụng một đầu vào nắp khớp nối là tránh. Điều này cải thiện đáng kể sạch và minh bạch, đặc biệt là nếu giai đoạn trước có tụ điện đầu ra khớp nối. Những nếu không sẽ không cần thiết cascaded với các tụ điện đầu vào, đó là không tốt cho âm thanh. Nếu bạn muốn xây dựng amp này, được tuy nhiên cẩn thận nếu bạn không chắc chắn nếu giai đoạn trước trong hệ thống của bạn có chữ hoa đầu ra khớp nối. Nếu nó không có, DC có thể vào amp, mà sẽ được khuếch đại và gửi đến loa của bạn!