Thứ Hai, 29 tháng 7, 2019

Tổng hợp các lỗi hay gặp khi cấu hình jx chạy qua proxy

1. Failed to load script script/global/
Nguyên nhân: Do thiếu các file config .lua trong thư mục script/global, có thể do quá trình nén/giải nén giữa windows, linux, hoặc do phần mềm upload file chỉnh sửa file name để phù hợp với hệ điều hành nên gây ra lỗi (winscp có 1 cái dấu tick "Replace Special Characters" trong copy option để tự convert filename cho tương thích với HĐH đích)
Khắc phục: upload lại source ở định dạng nén lên server linux, sau đó SSH trực tiếp vào server linux để giải nén, không giải nén ở máy cá nhân rồi mới upload lên server.

2. Không thể start game trên máy chủ Linux, báo lỗi không tìm thấy IP Proxy:
Nguyên nhân: do chưa add IP Proxy lên máy chủ Linux
Khắc phục: xem phần Add IP Proxy ở bài hướng dẫn config cho máy chủ Linux
- Chạy lệnh:
/sbin/ip addr add 123.123.123.123/32 dev eth0:1 (với 123.123.123.123 là IP proxy, eth0 là tên card mạng - cần thay bằng tên tương ứng với server của bạn)
- Add dòng trên vào file /etc/rc.local luôn để khi khởi động tự add IP proxy vào sv linux.
- Với CentOS 7 thì cần chạy thêm lệnh chmod +x /etc/rc.d/rc.local thì khi reboot mới có tác dụng.

3. Game đang chạy bình thường, sau khi reboot thì ko start được game
Nguyên nhân: do sau khi reboot, IP Proxy không được add tự động lên máy chủ Linux
Khắc phục:
/sbin/ip addr add 123.123.123.123/32 dev eth0:1 (với 123.123.123.123 là IP proxy, eth0 là tên card mạng - cần thay bằng tên tương ứng với server của bạn)
- Add dòng trên vào file /etc/rc.local luôn để khi khởi động tự add IP proxy vào sv linux.
- Với CentOS 7 thì cần chạy thêm lệnh chmod +x /etc/rc.d/rc.local thì khi reboot mới có tác dụng.

4. Game start thành công nhưng không connect được:
Nguyên nhân: kiểm tra lại phần NAT xem đã redirect kết nối đến IP của Proxy hay chưa
Khắc phục:
- Chạy lệnh:
iptables -t nat -A PREROUTING -d 192.168.199.11/32 -p tcp -m tcp --dport 6666 -j DNAT --to-destination 123.123.123.123
- Lưu lại cấu hình iptables hiện tại cho lần khởi động tiếp theo: #iptables-save > /etc/sysconfig/iptables

5. Game đang chạy bình thường, sau khi reboot thì không kết nối được game
Nguyên nhân: do mất rule NAT để redirect kết nối vào IP Proxy trên máy chủ Linux
Khắc phục:
- Chạy lệnh:
iptables -t nat -A PREROUTING -d 192.168.199.11/32 -p tcp -m tcp --dport 6666 -j DNAT --to-destination 123.123.123.123
- Lưu lại cấu hình iptables hiện tại cho lần khởi động tiếp theo:
iptables-save > /etc/sysconfig/iptables

Hướng dẫn cấu hình game JX chạy qua proxy gen3 - Phần 2 - Cấu hình trên máy chủ Linux

phần 1 mình đã chia sẻ các cấu hình trên máy chủ Win, tiếp theo chúng ta sẽ cấu hình trên máy chủ Linux. Nhắc lại mô hình xíu cho các bạn dễ theo dõi:
Mô hình Proxy Gen3
Các thông tin cần lưu ý:
- IP Proxy: 123.123.123.123
- IP Local máy chủ GS: 192.168.199.11
- IP Local máy chủ Win: 192.168.199.10
- Toàn bộ thao tác bên dưới được thực hiện trên máy chủ Linux chạy GS

I. Config Game
1. Config Goddess:
- Goddess có nhiệm vụ connect từ game tới mysql, lưu dữ liệu nhân vật game xuống mysql.
- Chúng ta lưu ý các thông số như hình dưới:
goddess.cfg
- Password: thông số này là password user root, được encrypt bằng file GMPassGen.exe trong bài hướng dẫn bên windows.
- FixIP: goddess dễ config, để 127.0.0.1 cho cả 2 trường này đều được, không vấn đề.
Chạy goddess thành công

2. Config Bishop 
- Bishop có 2 nhiệm vụ:
      + Mở cổng login, member khi login sẽ connect tới bishop trước, thường là port 5622.
      + Sau khi member kết nối, bishop ở linux sẽ connect tới port 5002 của Paysys bên windows để yêu cầu xác thực account login có chính xác hay không. Nếu authen thành công mới cho qua và trong khung đăng nhập game của member mới show ra nhân vật.
- Lưu ý các dòng được tô trắng trong hình sau:
bishop.cfg
+ AccSvrIP: điền ip của windows, nếu đang config LAN thì điền ip LAN (192.168.199.10), đang config ip public thì điền ip public.
+ MacAddress: điền MAC của linux, cấu trúc như hình, các ký tự chữ cái viết hoa, lưu ý: dùng dấu gạch ngang chứ không phải dấu : như linux.
+ Account + Password: đây là cặp user/pass để authen với server windows.
+ FixIp: Phần này đặc biệt lưu ý, thông thường sẽ điền như trong hình là sẽ chạy được (Intranet IP là IP Local của Linux). Nhưng nếu lúc chạy bị lỗi, có thể đổi lại, hoán đổi giữa ip LAN, ip local, ip public tới khi nào chạy được bishop, nguyên nhân do JX linux source có nhiều bản, mỗi bản có cách config FixIp khác nhau.
Chạy bishop thành công

3. Config S3relay
- S3relay có file config tương tự như bishop, do đó nếu bishop config và chạy thành công, chúng ta sẽ copy các thông số tương tự qua s3relay:
relay_config.ini

+ Database - Password: copy password encrypt từ file goddess.cfg
+ Account + Password + MacAddress: copy từ bên bishop.cfg
+ FixIp: copy từ bên bishop.cfg sang (Lưu ý: khi chạy s3relay mà bị lỗi có thể hoán đổi IP trong FixIp tới khi nào chạy được, tương tự như bishop).

4. Config jx_server_y
- Dịch vụ này là dịch vụ game chính.
- Người chơi trong game sẽ liên tục connect tới dịch vụ này.
- Chạy port 6666 (có thể mỗi game có đổi port).
- File config: servercfg.ini
- Thông thường chỉ chỉnh 1 chỗ là InternetIp trong FixIp, chỗ này nếu có proxy thì đặt IP proxy (123.123.123.123) vào đây.

II. Config tích hợp Proxy
1. Add IP Proxy:
- Mục đích để services cuối jx_server_y có thể start được với IP proxy.
- Chạy lệnh:
#/sbin/ip addr add 123.123.123.123/32 dev eth0:1 (với 123.123.123.123 là IP proxy, eth0 là tên card mạng - cần thay bằng tên tương ứng với server của bạn)
- Add dòng trên vào file /etc/rc.local luôn để khi khởi động tự add IP proxy vào sv linux.
- Với CentOS 7 thì cần chạy thêm lệnh chmod +x /etc/rc.d/rc.local thì khi reboot mới có tác dụng.

2. Xóa các rule iptables mặc định:
- Flush các rules mặt định của iptables tại 3 các chains:

# iptables -F INPUT
# iptables -F OUTPUT
# iptables -F FORWARD

3. Nat traffic game từ proxy vào sv linux, nat sang port game.
- Chạy lệnh:
# iptables -t nat -A PREROUTING -d 192.168.199.11/32 -p tcp -m tcp --dport 6666 -j DNAT --to-destination 123.123.123.123
- Lưu lại cấu hình iptables hiện tại cho lần khởi động tiếp theo: #iptables-save > /etc/sysconfig/iptables

Phần này là rất quan trọng, cần làm theo chính xác để chạy được game cũng như khi reboot máy chủ thì ko phải vào config lại. Đến đây là hoàn tất rồi!

Hướng dẫn cấu hình game JX chạy qua proxy gen3 - Phần 1 - Cấu hình trên máy chủ Win

Hôm nay mình sẽ chia sẻ với các bạn cách cấu hình game JX chạy qua Proxy Gen3 của mình.
Khác với proxy Gen2, proxy Gen3 hỗ trợ nhiều tính năng cải tiến như:
- Server game và server win dùng IP Local để tránh tình trạng bị đánh thẳng vào GS không thông qua Proxy.
- Lấy được IP thật của Client.

Mô hình Proxy Gen3


Nghe thông tin là Gen6 chuẩn bị được tung ra thị trường, phần này mình chưa được sử dụng nên chưa có thông tin, khi nào có sẽ cập nhật và nhận xét cho các bạn sau.

Để cấu hình game jx chạy qua proxy cần chuẩn bị các thông tin sau:
- IP Proxy: 123.123.123.123
- IP Local máy chủ GS: 192.168.199.11
- IP Local máy chủ Win: 192.168.199.10

Phần 1 sẽ tập trung vào config trên máy chủ Win, phần config trên máy chủ Linux sẽ được hướng dẫn ở phần 2.

Các bước thực hiện trên máy chủ Win:
1. Import DB account_tong vào SQL Server.
2. Config DB serverlist trong account_tong, cho phép linux connect sang windows: click phải vào table dbo.ServerList trong account_tong, chọn "Edit 200 rows" như hình dưới:

- Sau khi chọn Edit, bên phải sẽ xuất hiện cửa số edit như hình dưới:

- Các thông số được khoanh tròn rất quan trọng:
. cServerNam + cPassword: điền username và password đã được mã hóa.
. cIP: chỗ này mình điền IP của con linux (192.168.199.11), nếu dùng ip LAN thì điền ip LAN, nếu không có ip LAN điền ip public.
. cMemo: điền MAC của card mạng chứa ip cIP (qua server Linux lấy), lưu ý định dạng không phải như bên linux, định dạng có kiểu XXXX-XXXX-XXXX như bên trên.

3. Config file database.ini:
- Mở GMPassGen lên và điền IP local của Windows (192.168.199.10) và 2 ô trống và bấm Gen:

- Copy kết quả và điền vào phần server của file database.ini. Làm tương tự cho các phần Database, User, Password (nhớ thay thông tin tương ứng của từng phần vào nhé). Kết quả như sau:


4. Chạy 2 file S3Relay và Paysys
Khi chạy lỗi sẽ hiện thông báo lỗi "Database connect error", lúc này chúng ta check lại các bước edit database.ini chính xác chưa, vì nếu chính xác sẽ không bị lỗi. Còn nếu thành công thì như hình dưới:
Chạy S3Relay & Paysys thành công
Lưu ý: tắt Window Firewall hoặc allow full port 5002 + 7777 cho phép từ linux kết nối sang windows.

Tổng hợp các lỗi hay gặp khi cấu hình jx chạy qua proxy

1. Failed to load script script/global/ Nguyên nhân:  Do thiếu các file config .lua trong thư mục script/global, có thể do quá trình nén/gi...