The netcat -s parameter is used to set the source address. This parameter is used if you have multiple interfaces, and multiple exit gateways that can be used. netcat manual
It seem to me that you are trying to set the source ip to an ip that is not routed back to you on your gateway.
The traffic flow would look something similar to this for the three-way handshake:
(192.168.0.254 is your default gateway used to reach internet).
220.127.116.11 -> 192.168.0.1 (SYN)
192.168.0.1 -> 192.168.0.254 (SYN+ACK) # At this point, the packet will be routed through the gateway, destination is still 18.104.22.168
192.168.0.254(official internet ip) -> 22.214.171.124 (SYN+ACK)
126.96.36.199 -> 192.168.0.254(official internet ip) (RST) # Packet is disregarded by 188.8.131.52 is not familiar with this connection.
As you can see, you will be able to spoof the initial packet to the server, but you are unable to complete the three-way-handshake which is required to send any commands/data. The reason for this is because the response traffic will not be sent back to you, but to the real 184.108.40.206 ip.
A method to perform a successful spoofing attack is by man-in-the-middle, where you convince 192.168.0.1 that you are the gateway. When 192.168.0.1 send the SYN+ACK response towards 220.127.116.11, you will intercept the traffic and can act as 18.104.22.168.
Paper about ARP and attacks