ここではRO emulatorである「jAthena」に外部から接続する方法を解説していきます。AthenaやROなどの基本事項についてはRO emulator[内部からの接続]を参照してください。また、事前に上記のページを読んでいることを前提とした説明になりますので、一通り読んでおくことをオススメします。
Athenaでサーバを構築し、外部から接続する場合、ローカルから接続する場合に変更しなかったファイルを修正する必要があります。ここではどのファイルを修正する必要があるのかを列挙します。
それでは具体的にどのサーバのどの部分を修正するかを解説していきます。
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
athenaディレクトリのconfディレクトリ内にあるchar_athena.confをテキストエディタで開いてください。char_athena.confはchar-server(1ワールドでのキャラクターデータを管理するサーバー)の設定を記述するものです。ワールドの名前や、ワールドのパスワード、サーバーの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-server(担当マップでのゲーム進行を管理するサーバー)の基本的な設定を記述するものです。次に重要なキーを列挙します。
前述のchar_athena.confと非常によく似ています。変更する箇所も全く同じです。このuseridとpasswdはchar_athena.confと同じものを指定しておきます。
login_athena.confはlogin-server(アカウントを管理するサーバー)の設定を記述するものです。主に管理者の設定になります。重要なキーを次に列挙します。
上記2つのキーを適当なものに変更しておきます。これら「***_athena.conf」の詳細はathena/doc/conf_ref.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は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アドレス代わりに指定するという方式も考えられます。これについては他のページで解説します。