Project

General

Profile

Actions

How to install on Linux Server » History » Revision 6

« Previous | Revision 6/7 (diff) | Next »
Master Chief, 2020-02-11 08:23


<h1>리눅스 서버에 설치하기</h1>

<h2>가상 머쉰 실행 환경 구성</h2>

<p><strong>네트워크 어댑터</strong></p>

<p>외부 접속이 필요할 경우 브리지 어댑터 사용을 권장합니다.</p>

<h2>리눅스 실행 환경 구성</h2>

<p>윈도우즈, 맥 사용자의 경우 리눅스 배포판이 필요합니다. 가상머쉰 사용을 권장드리며 센트OS, 우분투 등을 설치하세요.</p>

<p>배포판을 최신상태로 업데이트한 후 필수 패키지들을 설치합니다.</p>

<p>다음은 센트OS 사용자를 위한 방법입니다.</p>

root &lt;span class="c"&gt;# yum update&lt;/span&gt;
root &lt;span class="c"&gt;# yum install cmake gcc gcc-g++(or gcc-c++) gdb&lt;/span&gt;

<p>다음은 우분투 사용자를 위한 방법입니다.</p>

root &lt;span class="c"&gt;# apt-get update&lt;/span&gt;
root &lt;span class="c"&gt;# apt-get upgrade&lt;/span&gt;
root &lt;span class="c"&gt;# apt-get install cmake gcc g++ gdb&lt;/span&gt;

<p>넷드론 라이트의 정적 라이브러리는 다음 환경에서 빌드 되었습니다.</p>

<ul>
<li>CentOS 6.7: gcc 4.4, glibc 2.12</li>
<li>CentOS 7.2: gcc 4.8, glibc 2.17</li>
<li>Ubuntu 14.04: gcc 4.8, glibc 2.19</li>
<li>Ubuntu 16.04 LTS: gcc 5.4, glibc 2.23</li>
<li>Gentoo Hardened: gcc 4.9, glibc 2.22</li>
</ul>

<blockquote>
<p>GCC와 GLIBC 버전만 동일하다면 다른 배포판 사용도 가능합니다.</p>
</blockquote>

<p>이제 아래와 같이 로컬 방화벽 설정이 필요합니다.</p>

<p>다음은 센트OS 사용자를 위한 방법입니다.</p>

-A INPUT -m state --state NEW -m tcp -p tcp --dport 11000 -j ACCEPT

<p>서비스 리스너가 <u>Tcp</u> 포트 <u>11000</u> 을 사용한다면 해당 번호 연결을 허용해야 합니다.</p>

root &lt;span class="c"&gt;# /etc/init.d/iptables restart&lt;/span&gt;

<p>다음은 우분투 사용자를 위한 방법입니다.</p>

ENABLE = yes

<p>UFW 설정이 비활성화 되어있다면 활성화 시키도록 수정하세요.</p>

-A ufw-before-input -m state --state NEW -m tcp -p tcp --dport 11000 -j ACCEPT

<p>서비스 리스너가 <u>Tcp</u> 포트 <u>11000</u> 을 사용한다면 해당 번호 연결을 허용해야 합니다.</p>

root &lt;span class="c"&gt;# ufw enable&lt;/span&gt;

<p>다음은 포트 허용 적용 여부를 확인하는 방법입니다.</p>

root &lt;span class="c"&gt;# iptables -nL|grep 11000&lt;/span&gt;

<p>이제 아래와 같이 SSHD 로컬 방화벽 설정이 필요합니다.</p>

<p>다음은 센트OS 사용자를 위한 방법입니다.</p>

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

<p>SSHD 리스너가 <u>Tcp</u> 포트 <u>22</u> 를 사용한다면 해당 번호 연결을 허용해야 합니다.</p>

root &lt;span class="c"&gt;# /etc/init.d/iptables restart&lt;/span&gt;

<p>다음은 우분투 사용자를 위한 방법입니다.</p>

-A ufw-before-input -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

<p>SSHD 리스너가 <u>Tcp</u> 포트 <u>22</u> 를 사용한다면 해당 번호 연결을 허용해야 합니다.</p>

root &lt;span class="c"&gt;# ufw reload&lt;/span&gt;

<h2>서버 설정 파일 서식</h2>

<p>넷드론 라이트의 유니티 서버 예제는 <u>unityserver/docs/unityserver.config</u> 서식을 사용하여 상세한 설정이 가능합니다.</p>

<p>해당 config 서식은 기본적으로 하나 또는 각각의 파일에서 여러개의 프로그램에 대한 설정 옵션을 프로세스 이름과 서버 아이디를 통해 구분합니다.</p>

#
# set 1
#
[process_name_1:server_id_100]
...

[process_name_1:server_id_101]
...
#
# set 2
#
[process_name_2:server_id_100]
...

[process_name_2:server_id_101]
...

<p>주석 입력이 필요할 경우 해시(#) 마크를 사용하세요. 또한 새로운 Key를 <u>unityserver/src/Defines.h</u> 에 추가하여 <u>unityserver/src/util/CfgMgr.cpp</u> 의 <u>Load</u> 함수에서 읽어오는 것이 가능합니다.</p>

<p>미리 정의된 옵션은 다음과 같습니다.</p>

<ul>
<li>DefaultInterface: 외부 연결이 들어오는 인터페이스 이름입니다.</li>
</ul>

<blockquote>
<p>br0, eth0 등의 인터페이스는 ifconfig 명령어로 확인합니다.</p>
</blockquote>

<ul>
<li>DefaultPort: 외부에서 연결이 들어오는 사용할 Tcp Port를 입력합니다.</li>
</ul>

<blockquote>
<p>기본값은 11000 입니다.</p>
</blockquote>

<ul>
<li>ReliableInterface: 외부 연결이 들어오는 인터페이스 이름입니다.</li>
</ul>

<blockquote>
<p>br0, eth0 등의 인터페이스는 ifconfig 명령어로 확인합니다.</p>
</blockquote>

<ul>
<li>ReliablePort: 외부에서 연결이 들어오는 사용할 Udp Port를 입력합니다.</li>
</ul>

<blockquote>
<p>기본값은 11000 입니다.</p>
</blockquote>

<ul>
<li>BackboneInterface: 서버간 통신이 필요할 경우 전용망 인터페이스를 입력합니다.</li>
</ul>

<blockquote>
<p>보통 br1, eth1 등을 입력합니다. 없을경우 DefaultInterface 설정과 동일한 인터페이스를 입력하세요.</p>
</blockquote>

<ul>
<li>BackbonePort: 서버간 통신이 필요할 경우 서버 전용 Tcp Port를 입력합니다.</li>
</ul>

<blockquote>
<p>기본값은 11001 입니다.</p>
</blockquote>

<ul>
<li>MaxConnection: 최대 동시 접속 제한을 설정합니다.</li>
</ul>

<blockquote>
<p>하드웨어 사양에 따라 조정 하는것이 가능합니다. 최대값은 60000 이며 일반적으로 4000에서 8000정도를 입력합니다.</p>
</blockquote>

<ul>
<li>
<p>LogPath: <u>unityserver/src/Enums.h</u> 에 정의되어 있는 <u>LOG_EVENT_TYPE</u> 과 <u>LOG_FIELD_TYPE</u> 서식의 게임 로그 저장 위치입니다.</p>
</li>
<li>
<p>InfoPath: <u>kill</u> 명령어를 통한 안전한 종료 및 프로세스 상태 확인을 위한 <u>PGID</u> , <u>PPID</u> , <u>PID</u> 정보를 기록하는 위치입니다.</p>
</li>
</ul>

Updated by Master Chief 10 months ago · 6 revisions