[SERVER] Help With Alternate IPs?

First of all.
Let’s say the servers main IP is a.a.a.a and the IP my gmod server should be using is b.b.b.b so this is easier.
So, in my start.sh I have +ip b.b.b.b, I can join off that IP and status shows
udp/ip : b.b.b.b:27015 (public ip: a.a.a.a)
When people go to view server info and/or if I invite people to my server from my friends list, it shows a.a.a.a:27015 and status shows public ip as a.a.a.a. Does anyone know why this happens and/or how I can fix this? Thanks.
It also seems that I don’t see the server in the public server list under DarkRP if I search the hostname. No idea if this has anything to do with it or not.
Server is running Ubuntu 14.04, all IPs are on a single interface and appear in ifconfig with 1 :2 :3 etc.
In the start script, both -ip b.b.b.b and +ip b.b.b.b are in there, wasn’t sure if it was cause I was using -ip so I changed to +ip and didn’t change.

When server starts, it says “Connection to Steam Servers successful, public IP is a.a.a.a when it should be b.b.b.b” but “Network: IP b.b.b.b, mode MP, dedicated Yes, ports 27015 SV / 27005 CL” shows the IP as b.b.b.b

server is supposed to be using ip #2, can connect with ip #2 but if other people try to join off me it uses ip #1 and they cant connect. also when it says “Connection to Steam Servers successful”, it shows ip #1.

[editline]27th April 2016[/editline]

While I’m here, I also get this on occasion.

../common/singleprocesspipe_any.cpp (198) : Assertion Failed: m_Peeked.second == false || m_nEventCount > 0                                                  |
Assert( Assertion Failed: m_Peeked.second == false || m_nEventCount > 0 ):../common/singleprocesspipe_any.cpp:198                                            |
assert_20160427000030_12.dmp[29343]: Uploading dump (out-of-process)                                                                                         |
/tmp/dumps/assert_20160427000030_12.dmp                                                                                                                      |
assert_20160427000030_12.dmp[29343]: Finished uploading minidump (out-of-process): success = no                                                              |
assert_20160427000030_12.dmp[29343]: error: libcurl.so: cannot open shared object file: No such file or directory                                            |
assert_20160427000030_12.dmp[29343]: file ''/tmp/dumps/assert_20160427000030_12.dmp'', upload no: ''libcurl.so: cannot open shared object file: No such file |
or directory''                                                                                                                                               

Uploaded: https://a.pomf.cat/hmygbt.dmp

Seems game.GetIPAddress also returns the wrong IP.

Bumping thread as there are no replies. Sorry for the impatience, this is causing me a lot of grief.