Toon posts:

[debian] Net_ip gameserver

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben nu bezig met een gameserver en wil verschillende servers eigen ips toewijzen. Op google vind je echter wel hoe je de ips kan toewijzen (ifconfig ethx:x). En dat lukt ook wel. Maar dan moet je deze nog toewijzen in het spel zelf. In dit geval call of duty. Als de server het doet zegt deze bij net_ip dat het ip localhost is. En de server doet het vervolgens gewoon. Als ik nu het ip verander of de poort mbv net_ip eq net_port gebeurt er niks. Hij geeft wel aan dat het veranderd is ook als ik het controleer met beide commando's. Maar hij blijft toch uitzenden op het originele ip en op de originele poort. Wat raar is want de poort zou toch zowiezo moeten veranderen. Nou dus de vraag hoe het kan dat net_ip en net_port niet correct werken.

Hier nog mijn ifconfig met de 2 iptjes (waarvan 1 virtueel):

eth0 Link encap:Ethernet HWaddr 00:04:75:FD:7B:5C
inet addr:X.X.X.200 Bcast:Y.Y.Y.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10263907 errors:0 dropped:0 overruns:1 frame:0
TX packets:2592789 errors:0 dropped:0 overruns:0 carrier:0
collisions:66704 txqueuelen:100
RX bytes:677901531 (646.4 Mb) TX bytes:1035310064 (987.3 Mb)
Interrupt:10 Base address:0xec00

eth0:0 Link encap:Ethernet HWaddr 00:04:75:FD:7B:5C
inet addr:X.X.X..202 Bcast:Y.Y.Y.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10263907 errors:0 dropped:0 overruns:1 frame:0
TX packets:2592789 errors:0 dropped:0 overruns:0 carrier:0
collisions:66704 txqueuelen:100
RX bytes:677901531 (646.4 Mb) TX bytes:1035310064 (987.3 Mb)
Interrupt:10 Base address:0xec00

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:289 errors:0 dropped:0 overruns:0 frame:0
TX packets:289 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:34600 (33.7 Kb) TX bytes:34600 (33.7 Kb)

x's en y's zijn hetzelfde

[ Voor 6% gewijzigd door Verwijderd op 29-01-2004 18:01 ]


Verwijderd

Lijkt me meer een zaak voor onze vrienden in Non-Windows Operating Systems :)

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Ehmm.. kun je het nog eens proberen uit te leggen, want dit is eigenlijk vrij onleesbaar :X

God, root, what is difference? | Talga Vassternich | IBM zuigt


Verwijderd

Topicstarter
Zo mischien iets duidelijker ?

  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 11-02 20:53

Kippenijzer

McFallafel, nu met paardevlees

iig kun je niet op verschillende ip's dezelfde poort gebruiken, dus gebruik iig voor de 2e server het 2e ip en poort+5 bijvoorbeeld, want hij bind lokaal ook die poort, en dat staat los van het ip. Daarnaast de welbekende vraag, firewall?

Verwijderd

Topicstarter
Er draait momenteel geen firewall. Ben bezig met iptables script. Maar waarom werkt ip_port dan ook niet. Hij geeft wel de melding dat het verandert maar zend niet op een andere poort uit. En dat van die poorten vat ik niet helemaal. Alle ips hebben toch weer alle poorten? Anders zou je toch ook niet meer ips nemen. Netzoals dmz? Of zit ik ernaast?

  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 11-02 20:53

Kippenijzer

McFallafel, nu met paardevlees

Tja, helaas koppelt een server dom genoeg ook altijd localhost:poort -> als jij op ip1 en ip2 op dezelfde machine iets draait, kun je ze niet op dezelfde poort draaien. Lichte flaw in 99% van de linux gameservers...
Hoe "weet" je dat ze niet op de juist poort luisteren eigenlijk? Omdat ze er bij het starten niets over zeggen? Dingen zijn dom, houd dat in je achterhoofd ;) Ik las laatst wel ergens dat de CoD features net als zoveel games weer niet helemaal lekker kloppen qua parameters enzo...
Wat zegt netstat -n -a -p (als root) als de servers runnen?

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 20-02 12:27
Spellen als counter-strike kun je dit opgeven op de commandline (voor hl/cs is dat dan met +ip xxx.xxx.xxx.xxx)

Dat moet met zo'n spel toch ook wel kunnen?

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


Verwijderd

Topicstarter
Het commando is in dit geval net_ip en net_poort (dit zijn tenminste de commando's diet ik heb gevonden en ze geven ook aan te werken). En de console bevestigd het wel maar als ik met ase probeer te joinen draait ie nog op oude poort respectievelijk oud ip.

[ Voor 45% gewijzigd door Verwijderd op 29-01-2004 21:27 ]


  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 20-02 12:27
mmm, dan ligt het toch aan je spel denk ik ergens nog, kijk ff op je de opties wel goed weergeeft, zoek anders een guide op op internet. Je bak is verder wel te benaderen op die IP's? Draai je apache erop? Dan zou je even een virtualhost kunnen aanmaken ipbased, en zo verschillende pagina's kunnen laten zien bij verschillende IP adressen....

En als je joint op een HOSTNAME ipv een ip adres, zorg dan dat de DNS van die hostname verwijst naar het juiste ip...

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 21:48
wat ik uit http://www.codboards.com/index.php?showtopic=851&st=0 begrijp zijn net_ip en net_port er voor bedoeld om het juiste ip bij een WON server (als je bijv achter een router zit en poorten mapt) door te geven en niet om het ip waarop ie moet binden veranderen!

Mocht er echt niets voor zijn, dan zou je evt via env LD_PRELOAD een zelfgeschreven lib kunnen laden die de bind() call afvangt en daar het ip en poortnr veranderen :)

ok, je hoeft t niet eens zelf te schrijven:
http://mega.ist.utl.pt/~luis/socketlock/

na het compilen:

env LD_PRELOAD=<path_to>/libsocketlock.so BINDTO=123.123.123.123 call_of_duty_executable

[ Voor 63% gewijzigd door Jelmer op 30-01-2004 00:30 ]


Verwijderd

Topicstarter
Aah, hartstikke bedankt _/-\o_ . Ik ga het nu even proberen. Ik dacht dat het net_ip was maar een cod guide op internet (meerdere zelfs) bevestigde dat. Maar het schijnt dan kennelijk inderdaad toch iets anders te zijn

Verwijderd

zet dit in je conf:

code:
1
set sv_net_ip "123.123.123.123"


Natuurlijk wel even dat ip met je eigen vervangen (bijvoorbeeld die van eth0:1)

Verwijderd

Topicstarter
Adminhenk, heb je dit zelf wel eens gebruikt. Het functioneert hier niet goed namelijk.

Verwijderd

Topicstarter
Iemand nog enig idee hoe het normaal zou moeten bij cod.
Want ik heb nu gewoon een dedicated.cfg met
set sv_net_ip "123.123.123.123".
Maar nu draait deze nog steeds alleen op het oude ip.

Verwijderd

hmmm dit is toch niet een echt stukje uit je cfg ?
daar moet je uiteraard wel het goede adres invoeren, maar dat lijkt me duidelijk.

Het lijkt er toch meer op dat ie de poort niet kan binden aan het ip adres wat je opgeeft (misschien toch een klein config foutje in je virtual Interface)
als dat niet lukt pakt ie de interface die ie t eerste tegenkomt.(x.x.x.200 dus)

probeer eens met linuxconfig een virtual interface aan te maken. (apt-get install linuxconfig)

[ Voor 86% gewijzigd door Verwijderd op 08-02-2004 01:52 ]


Verwijderd

Topicstarter
Oh dit is niet te geloven. het kwam doordat hij stopte met het uitvoeren van de config file door een fout in de maprotate. Hierdoor kon ik wel handmatig starten met map. Maar daardoor paktie die het ip niet. Het werkt nu dus.

|:( |:( |:( |:( |:( |:( |:( |:( |:(

  • [NUT]
  • Registratie: Juni 2001
  • Laatst online: 18-02 12:34

[NUT]

Heppiedepeppie

als je de executable had uit gevoert met '+set net_ip 123.123.123.123' dan had het ook al gewerkt (mits de commandline versie ook sv_net_ip is geworden in CoD) dit is standaard in alle Q3 engine games die ik ken...

Verwijderd

Topicstarter
Dat is raar dat deed ik dus eerst en dan later map laden.
Kennelijk kapt ie dan met uitzenden op ander ip. Maar eerst stond er als ik net_ip deed wel het correcte ip maar deed ie nog wel het foute.

[ Voor 56% gewijzigd door Verwijderd op 08-02-2004 20:22 ]

Pagina: 1