안녕하세요.

따분한 일상의 관리자 서팀장입니다.

오랜만에 글을 올리는것 같습니다.


요즘 모바일 게임이 다양화 되다보니

PC에서도 모바일 게임을 즐길 수 있는 방법까지 나오고 잇다.



MOMO, NOX, BlueStack 등등의 앱플레이어를 이용하여 

PC에서 여러개의 계정을 플레이할 수 있도록 되었다.


그러다 보니, 일부 게임업체에서는 다수의 계정을 올리것을

작업장으로 오인하여 압류하는 경우까지 생기고 있다.

(자동프로그램을 약용하여 돈벌이 사용하는 국/내외 작업장들을 잡기 위한 방편인것 같다.)


지금까지 알려진바에 의하면 동일 아이피에 다수계정(4개이상)을 장시간 돌리는것을 주타겟으로 잡고 잇는것 같다.


정석적으로는 윈도우서버의 VPN 서버를 이용하여

접속 계정별로 아이피를 분리하도록 설정하는 방법을 알려드리는것이 맞겠지만,

VPN서버 설정은 junior 서버관리자들에게도 어려운 게념일 수 있음으로


대~충. "VPN으로 하면 내아이피를 바꿀수 있다더라~" 라는 계념과

"IPTIME 공유기" 이런것을 들어는 본것 같다. 정도만 알 수 있는 분들 정도의 수준에 맞춰서

가능한 한 쉽게 구축 할 수 잇도록 해보려고 한다.


VPN을 사용하는것 보다 좀더 쉽고 안정적인 방식으로 변경 하였습니다.


그래서, 오늘은 위와 같은 작업장이 아닌 선량한 다계정 플레이어들을 위하여,

계정의 아이피를 분리하는 방법을 알아 보고자 한다.

(재대로된 작업장은 기업회선으로 아이피를 수백개를 할당 받아서 하는것으로 알고 있다., 아니면 말고..)


아 그리고, 나는 앱플레이어 개발사와도 인터넷회선 사업자 와도 아무런 상관도 없으며

그냥 평범한 회사를 다니는 보통사람이라는것을 밝혀 두겠다.


지금 나의 인터넷 환경은

- KT 기가 인터넷을 사용하고 있다.

  그래서, 공인 아이피를 3개까지 할당 받아서 사용 할 수 있다.

  참고로, LGU+는 공인아이피를 1개밖에 안준다. 다른 인터넷 업체는 잘 모르겠다.

  아마도 각 회선사업자 마다 부가서비스로 아이피를 여러개 받을 수 있는것으로 알고 잇다. 각자 사용하고 있는 회선 사업자를 통하여 방법을 찾도록 하자.


- 공인아이피를 할당 받을 수 있는 만큼 IPTIME 공유기가 있다.

- 모모앱플레이어를 사용하고 있다(녹스/블루스택등 어떤것인든 상관없음)


다음장에서 본격적으로 구체적인 방법을 알아보도록 하자.

(현재 재작중.. 11월중 공개 예정)


2017/09/06 - [Review] - 앱플레이어에서 VPN을 이용하여 아이피 분리 하는 방법(1)

2019/03/05 - [Review] - 앱플레이어에서 VPN을 이용하여 아이피 분리 하는 방법(2




Elastic Search의 어느버전부터 인지는 정확하지 않지만,

초기설정은 외부에서 접근이 불가능 하고, 로컬에서만 접속 가능 하도록 설정 되어있다.

보안때문이지 않을까 싶다.


ElasticSearch는 기본적으로 9200/tcp 포트를 사용하도록 되어 있으나,

본인은 포트를 39200/tcp 으로 변경하여 사용한다.


그래서, netstat 를 쳐보면 아래와 같이 로컬IP만 LISTEN 하고 있다.

netstat -na -t | grep 39200

tcp        0      0 ::ffff:127.0.0.1:39200      :::*                        LISTEN      

tcp        0      0 ::1:39200                   :::*                        LISTEN       


위와 같이 되면 로컬에서만 접속가능 하기 때문에 공극적으로는

[root@DEV-SCOWAS01 ~]# netstat -na -t | grep 39200

tcp        0      0 :::39200                    :::*                        LISTEN      

[root@DEV-SCOWAS01 ~]#  


":::39200" 이나 "0.0.0.0:39200" 으로 LISTEN을 하고 있어야

외부에서 접근 할 수 있다.


1. 환경설정 파일 수정 (config/elasticsearch.yml )

항목 

값 

비고 

 cluster.name

 okayjava_seach

 cluster는 향후 설명하겠지만, 여러대의 서버로 클러스터링 할때 사용된다.

그래서, 프로젝트명이나 회사명등을 입력 하면된다. 

본인은 okayjava_search 로 하였다.

 node.name

 WAS01

 클러스터링(여러대의 서버에서 분산처리) 할때  각 노드의 identify 가 된다. cluster.name을 갖고있는 ES내에서 유니크하면된다.

동일서버에 여러인스턴스를 생성하지 않는 경우 HOST명으로 한는것이 문안 할것 같다.

 network.host

 0.0.0.0

 호스트에 여러개의 NIC가 설치된 경우 특정 NIC로 들어오는것만 허용할 수도 있다.

"0.0.0.0" 은 any nic 라고 할 수 있다.

공식홈페지의 레퍼런스에서는 아래표와 같이 설명하고 있다.

 http.port

 39200

 기본은 9200이지만 바꿨다. 


 항목

값 

_[networkInterface]_

Addresses of a network interface, for example _en0_.

_local_

Any loopback addresses on the system, for example 127.0.0.1.

_site_

Any site-local addresses on the system, for example 192.168.0.1.

_global_

Any globally-scoped addresses on the system, for example 8.8.8.8.

위와 같이 하거나, NIC에 할당된 IP를 적어도 무관한다.



2. 커널파라메터 변경(http://okky.kr/article/364924 참고)

하나 하나가 정확히 뭘 의미 하는지 설명하려면 오래 걸리니 적당히 구글링을 해보면 나올것 같다.

운영하면서 적절히 조정하면서 사용하여야 한다.


vi /etc/security/limits.conf

아래부분을 추가 입력하고 저장한다.

was hard nofile 65536

was soft nofile 65536

was hard nproc 65536

was soft nproc 65536


was는 ES를 구동시키는 계정으로 변경



echo 1048575 > /proc/sys/vm/max_map_count

sysctl -w fs.file-max=65536

echo 65536 > /proc/sys/fs/file-max


reboot



위와 같이 설정후 리부팅하고, ES를 재구동 시키면 된다.


이상.

끝.




'linux' 카테고리의 다른 글

ElasticSearch 5.1.1 설치  (0) 2017.03.22
ElasticSearch 5.1.1 한글형태소(kr_analize) 지원(동전한닢)  (0) 2017.02.28
Apache + PHP + Oracle  (0) 2015.02.28
CentOS NFS 설정  (0) 2015.02.27
Linux shell(1분동안 계속 반복 수행)  (0) 2015.02.27



Elastic Search(이하 ES)는 설치는 아주 간단하다.

소스를 받아서 풀고, 실행만 시켜주면된다. 굳이 root권한도 필요 없었다.


소스를 다운 받는 방법은 아래를 참고하여 다운 받도록한다.

2017/02/28 - [linux] - ElasticSearch 5.1.1 한글형태소(kr_analize) 지원(동전한닢)


만일 한글형태소검색이 필요업다면, ES 버전에 제한없이 홈페이지에서 다운 받아도 무관한다.

(ES 홈페이지 : https://www.elastic.co/kr/)


다운받아서 tar 푸는 방법은 다 알것이기 때문에 추가 설명은 필요 없을 것이고.

만일 이 정도의 리눅스 상식이 없는 분이라면 ES 사용/운영은 어려울 것이다.

리눅스를 좀 더 공부하고, 재접근 하거나 주면지인의 도움을 받도록 하는것이 좋을것 같다.


나는 /app/local/ 밑에 풀었음.

가상환경이라 LVM을 사용하기 때문에 /usr/local 이런식으로 하지는 않앗고..

가상환경 예기는 나중에 기회가 되면 그때 보는걸로..


[was@DEV-SCOWAS01 elasticsearch-5.1.1]$ pwd

/app/local/elasticsearch-5.1.1

[was@DEV-SCOWAS01 elasticsearch-5.1.1]$ ll

합계 56

-rw-r--r--  1 was was 11358 2016-12-06 21:34 LICENSE.txt

-rw-r--r--  1 was was   150 2016-12-06 21:34 NOTICE.txt

-rw-r--r--  1 was was  9108 2016-12-06 21:34 README.textile

drwxr-xr-x  2 was was  4096 2017-03-22 14:03 bin

drwxr-xr-x  3 was was  4096 2017-03-22 14:03 config

drwxrwxr-x  3 was was  4096 2017-03-22 14:03 data

drwxr-xr-x  2 was was  4096 2016-12-06 21:39 lib

drwxr-xr-x  2 was was  4096 2017-03-22 14:03 logs

drwxr-xr-x 12 was was  4096 2016-12-06 21:39 modules

drwxr-xr-x  2 was was  4096 2016-12-06 21:39 plugins

[was@DEV-SCOWAS01 elasticsearch-5.1.1]$  



실행방법
데몬 형태(-d)로 띄워 주면된다.

bin/elasticsearch -d 

이후에 logs 폴더내에서 로그 파일을 보면서 디버깅을 하면된다.

아주 간단하다.


간혹 아래와 같이 오류 나는 경우가 있다.

Warning: Ignoring JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

Please pass JVM parameters via ES_JAVA_OPTS instead

[was@DEV-SCOWAS01 bin]$ Exception in thread "main" java.lang.UnsupportedClassVersionError: org/elasticsearch/bootstrap/Elasticsearch : Unsupported major.minor version   .0

        at java.lang.ClassLoader.defineClass1(Native Method)

        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)

.... 


이런 경우는 JAVA의 버전이 맞지 않기 때문이다.

1. ES는 JRE 1.8.x가 필요한데 1.7이나 1.6일 경우

2. $JAVA_HOME 의 경로와 $PATH에서의 경로가 다른 경우


이런 경우 시스템에서 하위버전(1.8 미만)을 사용하고 있기 때문에 JAVA_HOME을 함부로 변경 하기가 쉽지 않다.

ES를 구동할때만 JAVA 1.8을 사용하도록 수정 하자.

따라서,  bin/elasticsearch 파일을 열어서 JAVA_HOME 위치를 변경 하도록 한 줄을 추가 해주면 된다.


[was@DEV-SCOWAS01 elasticsearch-5.1.1]$ vi bin/elasticsearch

#!/bin/bash

.... 중략 ...

# Check to see if you are trying to run this without building it first. Gradle

# will replace the project.name with _something_.


JAVA_HOME=/app/local/jdk1.8.0_91


if echo 'distribution' | grep project.name > /dev/null ; then 


오늘은 여기까지 끝.





+ Recent posts