Your server IP that external sites (eg. whatismyip, ...) see is the IP that your server get from your routing table.
$ ip route
default via x.x.x.x dev ethX ...
10.0.0.0/16 dev ethY ...
....
If the site you are trying to connect has its IP in a subnet specified in the routing table, both source IP (yours) and outgoing interface will be taken from this specific route.
For example : whatismyip.net 's IP is 10.0.0.1, when you send traffic to it, your server will use the ethY interface and the ethY IP.
Otherwise, if the site does not match any subnet, the default route is used. In the example, the server will send traffic through the ethX interface with the ethX IP as source.
In your context, it seems that your default route is via eth0.
To use another interface/IP :
you can specify for some command, the outgoing interface and then your source IP, eg.
ping -I ethY whatever.net
ping -I eth0.Y whatever.net
curl --interface eth0.Y wtfismyip.com/text
or, you can add a new route for MY_REMOTE_IP, that will enforce the use of a given interface or source IP when communicating with it. In the example above, MY_SECOND_IP is the IP of the ethY interface
$ ip route add MY_REMOTE_IP dev ethY src MY_SECOND_IP
$ ip route add MY_REMOTE_IP dev eth0.Y src MY_SECOND_IP
Otherwise, in some commands, you can enforce the source IP, eg.
ssh -b MY_SECOND_IP user@MY_REMOTE_IP