RO emulator[外部からの接続]

Date : 2006-02-14
Author : Defolos

CONTENTS

(1.) 外部からの接続
(2.) 変更点
- サーバ側
- クライアント側
(3.) サーバ側の修正手順
- Makefile
- char_athena.conf
- map_athena.conf
- login_athena.conf
- account.txt
(4.) クライアント側の修正
- clientinfo.txt

外部からの接続

 ここではRO emulatorである「jAthena」に外部から接続する方法を解説していきます。AthenaやROなどの基本事項についてはRO emulator[内部からの接続]を参照してください。また、事前に上記のページを読んでいることを前提とした説明になりますので、一通り読んでおくことをオススメします。


変更点

 Athenaでサーバを構築し、外部から接続する場合、ローカルから接続する場合に変更しなかったファイルを修正する必要があります。ここではどのファイルを修正する必要があるのかを列挙します。

● サーバ側

● クライアント側


サーバ側の修正手順

 それでは具体的にどのサーバのどの部分を修正するかを解説していきます。

● Makefile

 athenaディレクトリ内にあるMakefileというファイルをテキストエディタで開いてください。次のような行が見つかると思いますので、それを修正する必要があります。


#-------High CPU----
#ptimize(recommended)
CFLAGS += -O3

#change authfifo
#CFLAGS += -DCMP_AUTHFIFO_IP -DCMP_AUTHFIFO_LOGIN2

 この部分を次のように修正します。#CFLAGS += -DCMP_AUTHFIFO_IP -DCMP_AUTHFIFO_LOGIN2の先頭の「#」を削除し、#によってコメントアウトされていた部分を処理させるようにします。#はその一行をコメントとする記号です。


#-------High CPU----
#ptimize(recommended)
CFLAGS += -O3

#change authfifo
CFLAGS += -DCMP_AUTHFIFO_IP -DCMP_AUTHFIFO_LOGIN2

● char_athena.conf

 athenaディレクトリのconfディレクトリ内にあるchar_athena.confをテキストエディタで開いてください。char_athena.confはchar-server(1ワールドでのキャラクターデータを管理するサーバー)の設定を記述するものです。ワールドの名前や、ワールドのパスワード、サーバーのIP、データファイル名などを記述します。重要なキーを次に列挙します。

userid
このワールドが使用するIDです。login-serverに登録されているアカウントのIDを指定します。 このワールドで使用するmap-serverの認証に使用するほか、login-server内でのワールドの識別にも使用されます。 同じloin-serverに複数のワールドを登録する場合は、それぞれのchar-serverで別のIDを使用する必要があります。
passwd
このワールドが使用するIDに対応するパスワードです。login-serverへの登録時と、map-serverの認証に使用されます。
login_ip
char-serverから見た、ワールドを登録するlogin-serverのIPアドレスです。
char_ip
クライアントから見た、char-serverのIPアドレスです。

このうち、useridとpasswdを適当なものに変更しておきましょう。login_ipは説明にあるとおり、char-serverから見た場合のlogin-serverのIPアドレスです。char-serverとlogin-serverが同じコンピュータ内で稼動している場合はループバックアドレス(127.0.0.1)を指定しますが、異なるコンピュータで分散処理を行っている場合はlogin-serverが稼動しているコンピュータのグローバルIPアドレスを指定します。char-ipはクライアントから見た場合のchar-serverのIPアドレスですので、char-serverが稼動しているコンピュータのグローバルIPアドレスを指定します。グローバルIPアドレスは確認君などで確認できます。

● map_athena.conf

 map_athena.confはmap-server(担当マップでのゲーム進行を管理するサーバー)の基本的な設定を記述するものです。次に重要なキーを列挙します。

userid
このワールドが使用するIDです。char-serverへの認証に使用されます。
passwd
このワールドが使用するIDに対応するパスワードです。
char_ip
map-serverからみた、このサーバーが担当するマップのワールドを管理するchar-serverのIPです。
map_ip
クライアントから見たこのmap-serverのIPです。

 前述のchar_athena.confと非常によく似ています。変更する箇所も全く同じです。このuseridとpasswdはchar_athena.confと同じものを指定しておきます。

● login_athena.conf

 login_athena.confはlogin-server(アカウントを管理するサーバー)の設定を記述するものです。主に管理者の設定になります。重要なキーを次に列挙します。

admin_pass
アカウントを作成するのに使用する管理者パスワードです。./tool/addaccountに設定するものです。
gm_pass
@gmコマンドでGMになるときに必要なパスワードです。

 上記2つのキーを適当なものに変更しておきます。これら「***_athena.conf」の詳細はathena/doc/conf_ref.txtにありますので、より詳しく調べる必要があるときはそちらを参照してください。

● account.txt

 account.txtはアカウント情報の管理を行うファイルです。athenaディレクトリ内のsaveディレクトリに収められていますが、account.txtの変更は事前にladminでアカウントを追加してから行ってください。account.txtの内容は次のようになっています。

0    s1   p1   2006-02-03 01:18:33.503    S    1   0
1    s2   p2   -   S    0    0
2    s3   p3   -   S    0    0
3    s4   p4   -   S    0    0
4    s5   p5   -   S    0    0
2000000 defolos@usr  defolos 2006-02-03 01:20:24.491 F   1   0
2000001 %newid%

 このファイルのs1およびp1の部分を、それぞれs1にchar_athena.confおよびmap_athena.confで指定したuseridに、p1にpasswdを指定します。これで一通りサーバ側の修正は終わりです。一度Athenaを稼動させて見ましょう。

 外部に向けてサーバを公開する場合、ADSLなどの常時接続環境の場合ではポートを開放する必要があります。これにはルータへログインし、必要なポート(6900番、6121番)を解放しましょう。これはそれぞれのルータのマニュアルを参照して行ってください。


クライアント側の修正

 クライアント側では次のひとつのファイルのみを変更すれば接続することができます。特にポートを開放する必要などはありません。

● clientinfo.txt

 clientinfo.txtはROがインストールされているフォルダのDataフォルダ内に格納されています。もしDataフォルダが無い場合は自分で作ってください。このclientinfo.txtは次のようになっています。


<?xml version="1.0" encoding="euc-kr" ?>

<clientinfo>

<servicetype>japan</servicetype>
<servertype>primary</servertype>
<hideaccountlist></hideaccountlist>

<connection>
<display>jRO Server</display>
<desc>None</desc>
<address>127.0.0.1</address>
<port>6900</port>
<version>10</version>
<langtype>2</langtype>
<registrationweb>http://www.ragnarokonline.jp</registrationweb>
<aid>
<admin>704554</admin><admin>704555</admin><admin>704556</admin>
<admin>704557</admin><admin>704558</admin><admin>704559</admin>
<admin>704560</admin><admin>704561</admin><admin>704562</admin>
<admin>704563</admin><admin>704564</admin><admin>704565</admin>
<admin>704566</admin><admin>704569</admin><admin>704570</admin>
<admin>704571</admin><admin>704572</admin><admin>704573</admin>
<admin>704574</admin><admin>704575</admin><admin>704576</admin>
<admin>704577</admin><admin>704578</admin><admin>704579</admin>
<admin>704580</admin><admin>704581</admin><admin>704582</admin>
<admin>704583</admin><admin>704567</admin><admin>704568</admin>
<admin>955890</admin><admin>955899</admin><admin>955900</admin>
<admin>955901</admin><admin>955902</admin><admin>955903</admin>
<admin>955904</admin><admin>955906</admin><admin>950682</admin>
<admin>794544</admin><admin>1007116</admin><admin>1007130</admin>
<admin>1114772</admin><admin>1007928</admin><admin>1230387</admin>
<admin>1230388</admin><admin>1230389</admin><admin>1230390</admin>
<admin>1230392</admin></aid>
</connection>

</clientinfo>

 このファイルの<address>127.0.0.1</address>の部分のIPアドレスをサーバが稼動しているコンピュータのIPアドレスに変更してください。これでクライアント側の修正は完了です。後はROのクライアントとAthenaサーバを起動させて、接続チェックを行いましょう。

 サーバが固定IPアドレスを持っていない、自動でISPからグローバルIPアドレスを割り振られる方式のインターネット接続環境では、サーバのIPアドレスが変わる都度、これまで設定してきたグローバルIPアドレスの部分を修正しなおさなければなりません。あまりにもわずらわしいと感じるようでしたらDDNSでドメインネームを取得し、ドメインネームをグローバルIPアドレス代わりに指定するという方式も考えられます。これについては他のページで解説します。


■参考文献


go back to the TOP page of Glazheim Lykeion.